首先查看mysql的error日志,查看到的错误日志内容如下:

111121 20:08:40 [ERROR] /usr/local/mysql/libexec/mysqld: Incorrect key file for table './ucentersmutf8/uc_members.MYI'; try to repair it
111121 20:08:40 [ERROR] Got error 126 when reading table './ucentersmutf8/uc_members'

很明显是由于ucentersmutf8数据库的uc_members表损坏造成的,找到问题就好解决了,于是通过mysql –uroot –p ******登录到服务器,

无法登陆的话可通过命令ps aux | grep mysqdd找到mysqld的进程id,直接kill -9结束掉。然后执行/etc/rc.d/init.d/mysqld start启动,发现启动失败,再查看mysql的错误日志,发现了如下报错:

111121 20:22:59 [ERROR] MYSQL_BIN_LOG::open_purge_index_file failed to open register  file.
111121 20:22:59 [ERROR] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
111121 20:22:59 [ERROR] Aborting

Mysql找不到二进制日志索引文件?cd到mysql的数据目录发现mysql-bin.index存在,突然看到目录下面所有的文件的属主都变成了www,晕倒,谁把mysql数据库目录有的权限给改了??? 于是执行chown –R mysql.mysql /data/dbdata,

然后/etc/rc.d/init.d/mysqld start,OK。启动没问题了,接下来就是修复mysql的表了,修复过程如下:

mysql –uroot –p*****        #登录到mysql
use ucentersmutf8;           #进入指定的数据库
check table uc_members      #查看表是否损坏
repair table uc_members      #修复uc_members表

修复完成之后访问网站,一切OK!后来询问分部那边,原来是mysql的数据目录和网站的目录在同一总目录下,那个管理员网站文件的时候图方便,直接用chown –R /data把/data目录下所有的文件都更改成www用户了。


mysql 数据库无法启动报错

2023-03-08 18:07:03 3673 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2023-03-08 18:07:03 3673 [ERROR] Plugin 'InnoDB' init function returned error.
2023-03-08 18:07:03 3673 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2023-03-08 18:07:03 3673 [ERROR] Unknown/unsupported storage engine: InnoDB
2023-03-08 18:07:03 3673 [ERROR] Aborting

解决方案
升级内存、或则先停止占用内存的服务,然后再启动mysql