亲测有效,解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";

最近租了一个阿里云云翼服务器,趁着自己还是一个学生,享受一下优惠。我租的是阿里云Ubuntu16.04版本的服务器,在搭建mysql的时候,一开始是可以运行的,由于某次手抽,把mysql的套接字文件不小心删除了,然后无论怎么卸载重装,都出现了这个问题:

root@iZufkfljcZ:~# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)


网上找了好久,搜到的全部是重复的文章而且也没讲明为什么出现这个问题,找了一天才找到一篇讲解mysql.sock文件作用的文章,然后分析一下为什么出现这个问题,现在讲之总结一下,以备后人查阅。

  我出现的问题是:找不到mysql.sock,如果你可以运行

find / -name mysql.sock

这条命令,并且能查到结果的话,只需将查到的结果做一个软连接到/tmp目录下即可解决(网上都是这么解决的)。

但是,我执行了这条语句之后,并没有任何反应,没有找到mysql.sock文件。

在这之前,需要明白mysql.sock这个文件有什么用?

连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。

如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到

一个亲测有效的解决办法

解决不能通过mysql .sock连接MySQL问题

这个问题主要提示是,不能通过 ‘/tmp/mysql .sock’连到服务器,一些mysql 安装方法 将 mysql .sock放在/var/lib/mysql .sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下的东东:

--------------------------------------------------------------------------------------------------------------
mysql.sock文件解析
https://segmentfault.com/a/1190000016098820


留言

這個網誌中的熱門文章

找商務中心、辦公室不用再去591