首先查看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