重启MySQL服务器

重启MySQL服务器

我在用MySQL v5.1乌班图机器。

MySQL 在我的机器上曾经可以工作。 (运行mysql -u root给了我 MySQL 命令行。)

今天下午,我做了以下一件事:

1.mysql通过运行检查与“”相关的活动进程:

$ ps aux | grep 'mysql'
mysql  1457  3.3  1.3 130044 27076 ?        Ssl  16:22   0:43 /usr/sbin/mysql

2.我从上面的输出中看到mysql进程的PID是1457,所以我用以下命令杀死了它:

$ sudo kill 1457

3.现在,如果我运行$ mysql -u root,我会收到错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

这是合理的,因为我杀死了该进程。

我怎样才能让我的 MySQL 服务器在被杀死后重新恢复并运行?

我尝试运行sudo /etc/init.d/mysql start,但我的 MySQL 服务器没有启动。这是为什么?

答案1

在 Ubuntu 上你应该使用service

sudo service mysql start

将来如果您想重新启动它:

sudo service mysql restart

答案2

经过一番研究我发现。您使用的是 Ubuntu,因此请转到System -> Administration -> Services,取消选中 MySQL,保存它,然后再次重新选中。

答案3

您可能已经损坏了数据库,导致 mysqld 无法启动。查看 /var/log/daemon.log 以了解 mysql 启动错误。还要查找 /var/log/mysql.err 并查看那里是否有任何内容。

将来“不要那样做”因为不干净的数据库服务器关闭会严重损坏 myisam 表,如果你在 innodb 上幸运的话,只会导致重大回滚,从而擦除所有不成功的事务。

您可以在以下位置找到错误消息信息http://dev.mysql.com/doc/

答案4

我会使用 daemontools 等来保持 mysql 在系统上运行,以防数据库服务器意外关闭。然而,正如其他人在这里指出的那样,在生产环境中杀死数据库服务器确实是一个坏主意。

回答mysql无法启动的问题,这是因为mysql init脚本检查mysqld的pidfile,我不确定它是否检查pid的有效性,然后stalelock可能会阻止mysql启动。最好的办法是service mysql restart确保/etc/init.d/mysql restartmysql 是从基础启动的。确保 mysql 服务正在运行ps,并service mysqld status 检查 mysqld 的日志,以检查进程是否干净启动以及所有数据库/表是否已正确初始化。

相关内容