专注云服务商活动
网站运营运维笔记

解决mysql.sock找不到这个文件的方法

我们在运维服务器的时候看到有mysql无法连接且重启数据库的时候提示 mysql.sock文件找不到的问题,这个如何解决呢?比如我们在重启数据库的时候有看到"Can't connect to local MySQL server through socket '/tmp/mysql.sock '"的问题。找不到这个文件如何解决呢?我们检查sock文件路径设置错误,sock文件所在目录的权限问题,mysql.sock文件丢失。

那如何解决?

1、检查服务有没有启动。

2、在my.cnf文件中查看socket参数指定的路径,查看这个路径有没有访问权限。

3、到那个路径下去看一下到底有没有这个mysql.sock文件,如果该路径下没有sock文件,我们先用find命令找出这个文件的位置,如果find也找不到,重启一下mysql服务即可,会自动生成一个。然后把他复制到soctek参数指定的路径下去。这里我们建立一个软连接,这也是比较推荐的方法,比如这个文件在/var/lib/mysql.sock,socket参数指定的路径是/tmp/mysql.sock。

我们就可以这样创建:

ln -s /var/lib/mysql.sock /tmp/mysql.sock

创建完之后,再尝试连接数据库是否正常。

我们需要注意的是,mysql.sock文件默认是在/tmp下,数据库启动的时候,系统也默认去这个文件下找mysql.sock文件,但是/tmp目录有时会被某个定时任务给清除,那么我们可以给/tmp目录加一个sticky权限,保护其不被删除,chmod +t /tmp即可,使得/tmp下的文件只能由文件所有者和root用户才能删除。

4、如果还是报那个错误,我们可以选用TCP/IP来连接。

mysql -uroot -h 127.0.0.1 -p
域名主机商优惠信息推送QQ群: 627775477 获取商家优惠推送,禁言。
赞(1)
未经允许不得转载:老左笔记 » 解决mysql.sock找不到这个文件的方法


扫码关注公众号

获取更多站长圈的新鲜事儿!
创业、运营、新知