ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Linux- 解决Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

2022-05-30 00:05:15  阅读:187  来源: 互联网

标签:tmp socket sock cnf mysql 接字 my


1.mysql.sock的作用

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

2.解决方式

2.1 方式 ① 重启服务器

如果配置没有问题

如果你因为丢失套接字文件而不能连接,你可以简单地通过重启数据库服务重新创建得到它。因为服务在启动时重新创建它。

2.2 方式 ② TCP/IP链接

如果重启服务器之后还是没有任何变化,可以执行下面的语句。

mysql -uroot -h 127.0.0.1 -p

不出意外可以执行进入,你现在不能用套接字建立连接因为它不见了,所以可以建立一个TCP/IP连接

2.3 方式 ③ 软件接复制到/tmp

寻找mysql.sock文件,然后创建软连接到/tmp

# 查询
find / -name mysql.sock
# 创建软链接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

2.3 方式 ④ 修改my.cnf文件

/tmp/mysql.sock位置找不到所需要的mysql.sock文件,主要是由于my.cnf文件里对mysql.sock的位置设定导致。如果可以查询到mysql.sock,可以在[mysqld]下面加入mysql.sock的path。

# (my.cnf也可能在其他路径下)
vi /etc/my.cnf 

[mysqld]下面加入或修改

socket = /var/lib/mysql/mysql.sock

标签:tmp,socket,sock,cnf,mysql,接字,my
来源: https://www.cnblogs.com/a999/p/16325334.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有