问题:
报错含义: 根据上面的报错,意思是说mysql想使用/var/run/mysqld/mysqld.scok文件,但是无法连接,接下来我们来看看这个文件是否存在
1.查看所有的sock文件
sudo find / -type s
根据上述命令所得出的结果可以知道,其中并没有 /var/run/mysqld/mysqld.sock,或者可以切换至该目录来验证socket文件所在目录并不存在
既然这是一个不存在的文件,那么说明肯定有哪个配置文件指向了该位置,经过查询,发现一般这个sock文件时由mysql的my.cnf配置的,不过这个文件有多个位置
2.locate命令查询所有的my.cnf (my.cnf是mysql的配置文件,存放的是sock的位置)
首先安装plocate包
然后输入以下命令
locate my.cnf
那么这么多my.cnf,到底是哪个my.cnf指定了/var/run/mysqld/mysqld.sock呢?
3.查看my.cnf使用顺序
mysql --help | grep my.cnf
结果显示,mysql会首先读取/etc/my.cnf 然后才会读取 /etc/mysql/my.cnf 最后读取各个用户目录下的.my.cnf 。/etc/my.cnf并不存在,那么当在界面输入mysql -uxxx -p时,就会首先去寻找/etc/mysql下的my.cnf。
4.配置/etc/my.cnf
这步很简单,如果我想让mysql启动使用我希望的应用的my.cnf,那么直接复制即可
5.重启mysql即可使用