`
LiYunpeng
  • 浏览: 952226 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

mysql无法找到或无法连接本地的mysql.sock的问题

阅读更多
类似如下错误
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'

或者是另外的其他路径,比如 /var/lib/mysql/mysql.sock


网上有很多解决方案,就是配置my.cnf或者my.ini,针对不同操作系统以及版本
我们明明在my.cnf配置了路径,但是还是不管用


首先,了解mysql.sock的作用,他是负责mysql建立socket连接的时候记录的一些信息文件
比如我们更换了mysql的数据文件目录,修改了配置文件之后就无法启动或者无法连接


上面我们知道mysql.sock的文件作用,再分析几种可能,而不是直接尝试解决问题
首先要确保,配置文件中的文件路径位置对当前的用户是否有相应的读写权限,否则即便MySQL读取了配置文件,也无法执行写操作或创建文件,就会报错
可以尝试如下,在对应目录下授权
chown -R mysql .


第二,配置完成后重启看是否可以启动成功,查看对应的目录下是否生成了相应文件,如果生成了,说明文件权限生效了,如果未生成,则需要判断,当前MySQL读取的配置文件是否为my.cnf,当然,默认情况下会是这个文件,除非启动的时候追加了参数,当然也要确保不要重复启动mysqld服务,看看端口是否已经启动了。


第三,如果MySQL服务成功启动了,说明服务端已经正常启动,但是在连接客户端的时候还可能出现这个问题,那么也就是连接客户端访问的又提示还是默认的路径,而不是my.cnf文件配置的路径,这个时候可以通过连接mysql的客户端后面追加参数 -S 文件路径,来连接mysql,不过这样并不方便,我们可以在my.cnf中追加
[client]
socket=/var/lib/mysql/mysql.sock或者自定义的目录,这样连接本地客户端的时候就会像这个文件目录读写文件了。

网上还有通过ln -s简历软连接的方式,将mysql读取的默认目录连接到自定义的目录,不过总觉得这样是治标不治本而且很别扭,虽然可以解决问题

相关更多说明可以参看官方文档
http://dev.mysql.com/doc/refman/5.7/en/option-files.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics