解决 Can’t connect to local mysql server through socket ‘/tmp/mysql.sock’ (2) |#2002
我安装的是lnmp0.7一键安装包,之前一直正常使用。可是今日重启了一下nginx后,奇怪的问题出现了:
Discuz X2出来错误:
[Type] 无法连接到数据库服务器[2002] Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)或是这个错误(Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2))
phpMyAdmin也无法用root登陆
#2002 无法登录 MySQL 服务器
找了一下/tmp/也找不到mysql.sock
解决方法:
1、 登陆ssh,使用以下命令
ps -aux|grep mysql
2、 然后结束你看到的pid
kill pid
(如,我的话就是要运行kill 17874;kill 17987;kill 30579;)
3、 最后重启mysql
/etc/rc.d/init.d/mysql restart
或者
service mysql restart
嘿嘿,成功了!/tmp/mysql.sock出现了!
如果你的情况跟我的不一样可以参考以下文章:
解决方法:php标准配置正是通过’/tmp/mysql.sock’,但一些mysql安装方法将mysql.sock放在/var/lib/mysql.sock或者其他地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件
更改一下:
[mysqld] socket=/var/lib/mysql.sock 假如更改后mysql程序连不上,可以使用下面的方法继续修改:[mysql] socket=/tmp/mysql.sock
另外还可以用下面的方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
Can not connect to local MySQL server through socket 解决办法
寻找 mysql.sock文件
find / -name mysql.sock
1. 先查看 /etc/rc.d/init.d/mysqld status 看看mysql是否已经启动,另外看看是不是权限问题。
2. 确定你的mysql.sock是不是在那个位置
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock
3、试试
service mysqld start
4、如果是权限问题,则先改变权限
chown -R mysql:mysql /var/lib/mysql/etc/init.d/mysqld start
相关文章:
1. mysql启动时报错 ERROR! Manager of pid-file quit without2. MYSQL(电话号码,身份证)数据脱敏的实现3. SQL Server根据查询结果,生成XML文件4. DB2 Spatial Extender 性能调优(2)(1)5. sqlserver数据库导入方法的详细图文教程6. Sql Server Management Studio连接Mysql的实现步骤7. SQL Server 2008通过端口1433连接到主机127.0.0.1的TCP/IP连接失败8. MySQL Innodb 存储结构 和 存储Null值 用法详解9. 解决Mybatis中mapper的ID冲突问题10. 关于if exists的用法及说明
