在我重启服务器之后,除了“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”错误而失败,
- 我将 my.cnf 中“bind ip”参数中的 IP 地址更改为 localhost
- 以安全模式启动 mysql。
- 以正常模式重新启动mysql,一切正常。
答案4
我遇到了同样的问题。并发现:
- 我的 Ubuntu MySQL 配置文件位于
/etc/mysql/mysql.cnf
- 该文件包括
/etc/mysql/mysql.conf.d
和中的所有*.cnf文件/etc/mysql/conf.d
。 - 这行:
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 就可以重新启动。