【MYSQL】mysql.sock连接问题

本文探讨了MySQL通过UNIX套接字mysql.sock进行连接时可能遇到的问题,包括客户端与服务器配置不一致导致的连接失败。解决方法包括检查并确保mysql.sock路径匹配,或使用TCP方式明确指定IP和端口进行连接。

mysql.sock连接问题

second60 20200705

 

在mysql中,有两种连接方式: tcp,  sock.

Sock 是unix原生套接字,速度比tcp的快, 所以不指定ip, 端口时,会当作本地连接,也就是会使用 mysql.sock连接。

 

mysql服务器在启动时,会生成一个unix套接字,名为mysql.sock. 默认目录在:/var/lib/mysql/mysql.sock.

 

mysql服务器启动时会读取默认配置文件my.cnf.

在我们的服务器安装目录的下面。

里面可以配置mysql.sock的路径

[mysqld]

sock=/tmp/mysql.sock

 

但经常有个坑, 就是mysql客户端启动时,如果没有指定ip,port时,mysq客户端会使用sock连接方式,而且会默认去读/etc/my.cnf.

 

问题1 : 如果/etc/my.cnf配置,mysql客户端会去查找

[client]

sock=/tmp/mysql.sock

查看这个sock是否和服务器的配的sock一致

 

问题2: 如果有/etc/my.cnf配置,但没有sock这个参数,那么mysql客户端会默认sock的位置为: /var/lib/mysql/mysql.sock

如果服务端有修改路径,那么两个sock不同路径,也是会连接失败

 

问题3:如果/etc/my.cnf 没有此文件,也会同问题2一样到默认路径中搜索

我们指定即可

 

 

 

怎么查找my.cnf中的mysql.sock路径

  1. 安装目里查找my.cnf

  1. /ect/my.cnf里查找

  1. Ps -ef | grep mysql查找启动参数

 

 所以下次遇上此问题,解决方面有两种

  1. 如上所述,去查找客户端和服务器中的mysql.sock中的路径是否不一样,不一样会出现上面的问题(特别是重装mysql后,之前配置了路径,重装时默认或指定路径不一样)
  2. 在连接时指定ip, port,用tcp的方式去连接,非unix域套接字

Mysql -u root -p  -h xxxx,xxx,xxx,xx

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值