我刚刚重启了我的 Ubuntu 服务器,但不知为何 MySQL 却无法启动!我正在使用:
/etc/init.d/mysql start
我刚刚得到这个:
* Starting MySQL database server mysqld [fail]
为什么会发生这种情况?Apache 正在运行,除了数据库连接之外,我的网站运行正常。MySQL 服务器通过 synaptic 正常安装。
我跑了:
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
我跟着这里的建议用于创建.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.
知道它的意思吗?或者它指的是哪个文件?
答案1
成功!正如问题更新中提到的,运行时mysqld
出现了一些错误。我找到了文件,并意识到整个/var/lib/mysql
目录的所有者是错误的(root 而不是 mysql)。这是由于我进行了分区交换和文件移动。
于是我跑了:
chown -R mysql /var/lib/mysql/
然后运行mysqld
常规 MySQL 启动命令就可以解决所有问题。
感谢所有提供帮助的人!
答案2
重新启动 mysql 运行
tail -f /var/log/syslog
并观察那里发生的情况。也许您的数据/日志分区上的磁盘空间已经不足了。