本帖最后由 ryueiketu 于 2012-09-07 15:56:01 编辑

解决方案 »

  1.   

    我真服了,写的写的,不小心回车了下,告诉我发帖成功。。我CCSDN真R
    然后我在修改里面,把下面的内容写好了,点击发帖,告诉我不能修改别人的帖子。。我日。。CSDN,能不能做的友好点呀。。我真想骂人。。
      

  2.   

    续集
    网上大神说这个最好设定可用内存的60%左右,于是我就给他保守的设了3000M。。重启!
    我的悲惨开始了。
    成功的没有启动,看错误日志:
    110730 18:35:36 [ERROR] /usr/local/mysql/bin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
    110730 18:35:36 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
    G+B大法用过,发现大部分人说是权限问题,如下
    ————————————————————————————————————————————————————————————————————————
    Q:  mysqld_safe启动不成功, 查看/var/log/mysqld.log有以下错误:061110  9:44:16 [ERROR] /usr/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
    061110  9:44:16 [ERROR] Fatal error: Can't open privilege tables: Can't find file: './mysql/host.frm' (errno: 13)但查看存在/var/lib/mysql/mysql/host.frm这个文件, 如何解决?A:  这是因为权限的问题,查看/var/lib/mysql/mysql/ 下的文件的用户组都是属于root.root      把/var/lib/mysql/mysql/ 这个目录删掉, 然后用mysql_install_db --user=mysql重新初始化一次mysql,再查看/var/lib/mysql/mysql/ 下的文件的用户组都是属于mysql.mysql, 这时启动mysqld_safe即可正常启动了。
    ---------------------------------------------------------
    我看看了我的/var/lib/mysql/mysql/ 这个目录下的东西还是mysql.mysql呀,没有变,我想可能不是权限的问题,我觉的我这个权限靠不上边,客户明天还等这用呢,这个急呀,于是求助朋友,朋友是个高手吧,说把/var/lib/mysql下的ib_logfile0 ib_logfile1文件删掉试试。。
    照做,重启,竟然神奇的启动了。。然后我用工具连上Db,点开数据库,看到了华丽丽的一片表。。
    在点击表,我哭了,告诉我表不存在了。。我大汗。。在看/var/lib/mysql的ibdate1文件,就剩几百k了。。
    求救朋友,朋友说可能可能数据表丢了,让我回复那两个文件在试试。。
    照做,重启,结果竟是神奇的启动啦。。但是看/var/lib/mysql。。但是ibdate1文件的大小还是那么点。。不过看数据库里的数据,发现好像还对。。一看表2点多了,睡觉吧。今天怀着七上八下的心,上了一天班,结果客户竟然没找我。。哈哈经过上面的一切,我有几点不明,希望大神们指点。。
    1,谁能帮我分析分析我上面的做法,那出问题了,为什么会有这样的后果。。为啥Mysql东不动就启动不了,是不是Mysql太弱啦。。
    2,ib_logfile0 ib_logfile1 ibdate1 这三个文件是干啥的。。能不能删。。求大神指点。。不胜感激。。本来想奉上高分,结果不争取的CSDN
      

  3.   

    1,只修改了innodb_buffer_pool_size大小,是不会出现这些情况的。查看/var/lib/mysql/mysql/ 下的文件的用户组都是属于root.root可以把权限改成mysql.mysql。你删掉重新生成mysql库的话,导致帐号密码信息都丢失了。2,ib_logfile0 ib_logfile1 ibdate1 这三个文件是干啥的。。能不能删。ibdate1:共享表空间。绝对不能删除,用处:G+B
    ib_logfile0 ib_logfile1:事务日志,可以删除,但会丢失事务信息。用处:G+B
    建议:重启时候,要是有什么改动的话,保险点 把innodb_fast_shutdown设置成0,完了之后,ib_logfile0 ib_logfile1 随便你删不删。
      

  4.   

    谢谢你的回复,可能我说的不清楚,其实我没有删除mysql库,我只是看有人这样做了,但是我没有这样做,我做的只是该了个innodb_buffer_pool_size就出现上面的问题了。。这是我百思不得其解的。。
      

  5.   


    当时出现这个问题,你可以试着去修复。如:repair .要是你只改了,没有操作其他的,那就和重启数据库有关系了,可能当时数据库正“忙”着,重启导致表损坏了。
      

  6.   

    我改完innodb_buffer_pool_size这个大小,重启,直接就下面的错误了。没做其它的。
    110730 18:35:36 [ERROR] /usr/local/mysql/bin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
    110730 18:35:36 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
      

  7.   

    有,在这/usr/local/mysql/data/mysql/host.frm
    /var/lib/mysql/mysql/host.frm