百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> Can t connect to local MySQL server through socket /tmp/mysq
分享文章到:

Can t connect to local MySQL server through socket /tmp/mysq

发布时间:01/15 来源: 浏览: 关键词:
今天在看一朋友网站时突然发现出来了Can\'t connect to local MySQL server through socket \'/tmp/mysql.sock\'错误提示,下面我来总结一下关于出现此类问题的解决办法

不能通过'/tmp/mysql.sock'连到服务器,而php标准配置正是用过'/tmp/mysql.sock',但是一些mysql安装方法将

mysql.sock放在/var/lib/mysql.sock或者其他的什么地方,你可以通过修改/etc/my.conf文件来修正它


首先是mysqld启动不了,

我通过vim /etc/my.cnf,修改了[mysqld]选项下面的socket的值
socket=/var/lib/mysql/mysql.sock
ok,mysqld可以启动了

接下来,是mysql启动不了,同样,vim /etc/my.cnf,添加了如下脚本:

[mysql]

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

然后,mysqladmin启动不了,还是一样,在[mysqladmin]下面socket值设置为同样的路径
ok,可以启动了

最后,用php连接的时候,又出现这个问题了

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

我首先想到的是,在/etc/php.ini修改mysql.default_socket的值,在这个文件中,关于mysql.default_socket的

值的说明是这样的,

; Default socket name for local MySQL connects.  If empty, uses the built-in MySQL defaults.
这个值一开始是空的,也就是说,如果我们不主动去修改的话,php将会使用内建在mysql中的默认值
于是,我修改了这个值,设置为:

mysql.default_socket=/var/lib/mysql/mysql.sock

然后我重新启动apache,结果无效;reboot系统,结果无效

我火大了,php就非得去连接/tmp/mysql.sock,可是我的系统里面就是没有这个路径下的这个文件,那我就给你链

接一个,于是我做了下面的操作,

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


怎样保护“/tmp/mysql.sock   ”不被删除

如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/mysql.sock”,在Unix的大多数版本上,你能

通过为其设置sticky(t)位来保护你的“/tmp”文件系统。作为root登录并且做下列事情:

shell>   chmod   +t   /tmp

这将保护你的“/tmp”文件系统使得文件仅能由他们的所有者或超级用户(root)删除。

你能执行ls   -ld   /tmp检查sticky位是否被设置,如果最后一位许可位是t,该位被设置了。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有1人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板