在安装postfix服务时遇到的mysql.sock问题

问题描述: 
使用MySQL -uroot -p登录出现找不到 /var/lib/mysql/mysql.sock问题。 

可以用如下命令登录:mysql -p --socket=/tmp/mysql.sock

解决方法: 
大多数mysql都是rpm方式安装的。它会自动寻找/var/lib/mysql/mysql.sock这个文件。

检查mysql.sock的位置。 
通过/etc/my.cnf中的socket的字段。 
如果socket如下所示:

socket=/tmp/mysql.sock

可以参考这篇文章

http://blog.csdn.net/u012346692/article/details/52329553

https://www.cnblogs.com/summer-cool/p/3959699.html

https://yq.aliyun.com/articles/45840

一般此时很多人要用#find查找,即 #find mysql.sock

结果是:

[root@mail ~]# find mysql.sock
find: `mysql.sock': No such file or directory
[root@mail ~]# 

其实是输入的参数有问题!!!!

正确的应该是

MySQL中mysql.sock找不到的解决方法

链接MySQL时,报错:

cant connect to mysql server through socket '/tmp/mysql.sock'

本质上这个问题是mysql.sock在其他路径导致的。

有文章说可以通过修改my.cnf的socket路径,但个人尝试后发现,这样可能导致mysql的服务起不来。

笔者认为,还是用软连接比较安全,方法如下:

1、找到mysql.sock

使用 find / -name mysql.sock进行寻找。如果找不到,那么说明该socket可能不是这个名字。

因此,需要先找到my.cnf,输入:

find / -name my.cnf

vim /<your path to my.cnf>/my.cnf

在里面找到该sock的名字。例如笔者的就是mysqld.sock.

然后通过 find 定位,找到sock的路径。

2、软链接

把sock软链接到目标路径。以笔者的问题为例,就是:

ln -s /run/mysqld/mysqld.sock /tmp/mysql.sock

Problem Solved !

Happy Coding ~

猜你喜欢

转载自my.oschina.net/u/2294923/blog/1570495