重启后 Mysql 没有启动

重启后 Mysql 没有启动

在我重启服务器之后,除了“mysql”之外所有东西都正常启动,我尝试手动“ /etc/init.d/mysql restart”或使用“ service mysql restart”启动它,但失败了

日志文件中显示:

Jul 16 08:13:38 localhost /etc/init.d/mysql[18136]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Jul 16 08:13:38 localhost /etc/init.d/mysql[18136]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

我检查了该路径,但没有找到该套接字文件,请指教?

编辑:

root@myserver:/var/log# service mysql restart
 * Stopping MySQL database server mysqld                   [ OK ] 
 * Starting MySQL database server mysqld                   [fail]

答案1

一个简单的技巧:

sudo ln -s /var/run/mysql/mysql.sock /tmp/mysql.sock
sudo service mysqld restart

如果这不起作用那么尝试这个:

首先在系统中查找 mysql 的打开套接字文件

sudo find / -type s 2>/dev/null | grep mysql 

就我而言/var/lib/mysql/mysql.sock

然后编辑配置文件/etc/my.cnf

sudo gedit /etc/mysql/my.cnf

然后搜索socket并编辑上面输出的条目

socket=/var/lib/mysql/mysql.sock

答案2

尝试一下service mysql restart。Ubuntu 使用 upstart 来提供 mysql 服务(参见“Service” 和 “/etc/init.d/” 有什么区别?),其行为与初始化脚本不同。

您使用的是哪个版本的 Ubuntu 和 Mysql?您能否发布上述命令输出和 /var/log/mysql*?

答案3

我尝试在“安全模式”下启动 mysql 来创建 sock 文件和 pid 文件,但由于某些“bind”错误而失败,

  1. 我将 my.cnf 中“bind ip”参数中的 IP 地址更改为 localhost
  2. 以安全模式启动 mysql。
  3. 以正常模式重新启动mysql,一切正常。

答案4

我遇到了同样的问题。并发现:

  1. 我的 Ubuntu MySQL 配置文件位于/etc/mysql/mysql.cnf
  2. 该文件包括/etc/mysql/mysql.conf.d和中的所有*.cnf文件/etc/mysql/conf.d
  3. 这行:log-error = /var/log/mysql/error.log非常有用

打开两个 shell 连接。在第一台服务器上运行以下命令:

  • tail -f /var/log/mysql/error.log

在第二台服务器上,只需重新启动 mysql:

  • service mysql restart

查看错误日志中的错误消息。就我而言,是以下两行:

  • query_cache_limit = 1M
  • query_cache_size = 16M

我只是对它们进行评论,然后 mysql 就可以重新启动。

相关内容