环境:Solaris 10
此 MySQL 服务器已运行 6 个月。今天突然崩溃了。以用户身份输入“mysql”时,出现错误MYSQL" Error 2002 (HY000): Can't Connect to Local MySQL server though socket '/tmp/mysql.sock'
。以 root 身份输入 mysql 时,显示错误mysql: not found
。
服务器尝试打开 MySQL,它会保持打开状态 9-10 秒并重新启动该过程。以下是应用程序日志。
应用程序-数据库-mysql_mysql-csk.log [ 5月30日 22:37:52 已启用。 ] [ 5月30日 22:37:58 重新读取配置。 ] [5月30日 22:37:59 执行启动方法(“/opt/coolstack/lib/svc/method/svc-cskmysql start”)] /opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid [ 5 月 30 日 22:37:59 方法“start”以状态 0 退出 ] [ 5 月 30 日 22:38:13 由于服务中的所有进程均已退出,因此停止。 ] [5月30日 22:38:13 执行停止方法(“/opt/coolstack/lib/svc/method/svc-cskmysql stop”)] [ 5 月 30 日 22:38:13 方法“stop”以状态 0 退出 ] [5月30日 22:38:13 执行启动方法(“/opt/coolstack/lib/svc/method/svc-cskmysql start”)] /opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid [ 5 月 30 日 22:38:13 方法“start”以状态 0 退出 ] [ 5 月 30 日 22:38:25 由于服务中的所有进程均已退出而停止。 ] [5月30日 22:38:25 执行停止方法(“/opt/coolstack/lib/svc/method/svc-cskmysql stop”)] [ 5 月 30 日 22:38:25 方法“stop”以状态 0 退出 ]
我希望有人可能曾经遇到过这个问题并且知道如何解决它。
答案1
对于遇到类似问题的任何人来说。
所有 innoDB 表的索引都已损坏。我最后能做的就是运行强制恢复。
http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
当我发布此帖子时,我已经尝试过 force-recovery = 4 并且没有成功,所以我认为它根本不起作用。
尽管最后我能够让 force-recovery =2 工作并且允许我访问数据。
备份所有内容后,我修复了索引,从那时起服务器就恢复正常了。
答案2
我的第一个想法是检查 MySQL 日志本身,可能在/dbpool1/data/$hostname.err
也许它可以解释为什么 MySQL 无法启动。或者,手动执行启动命令也可能有帮助:
/opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid