我刚刚重新启动了我的Ubuntu服务器,MySQL因为某种原因不能启动! 我在用着:
/etc/init.d/mysql start
我刚刚得到这个:
* Starting MySQL database server mysqld [fail]
为什么会发生这种情况? Apache正在运行,除了数据库连接,我的站点工作正常。 MySQL服务器通常通过突触来安装。
我跑了:
sh -x /etc/init.d/mysql start
其中列出了其中的输出:
+ echo -e 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in\n/usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!\n
我遵循这里的build议来创build.sock文件,但没有运气。
(让我知道你需要我提供的更多信息。)
更新:我从上面的输出提到它运行mysqld ,并得到这个错误:
100516 17:37:57 InnoDB: Operating system error number 13 in a file operation. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. InnoDB: File name ./ibdata1 InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation.
任何想法是什么意思,或者它指的是什么文件?
成功! 正如在问题更新中提到的,运行mysqld给出了一些错误。 我发现这些文件,并意识到整个/var/lib/mysql目录拥有不正确的所有者(root,而不是mysql)。 这是由于我做的分区交换和文件移动。
所以我跑了:
chown -R mysql /var/lib/mysql/
然后运行mysqld然后按照常规的MySQL启动命令修复一切。
感谢所有帮助过的人!
同时重新启动mysql运行
tail -f /var/log/syslog
并观察那里发生了什么。 也许你已经用尽了数据/日志分区上的磁盘空间。