can not connect to mysql server  _MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1946 | 回复: 0   主题: can not connect to mysql server          下一篇 
Gavin
注册用户
等级:少校
经验:878
发帖:130
精华:1
注册:2011-7-21
状态:离线
发送短消息息给Gavin 加好友    发送短消息息给Gavin 发消息
发表于: IP:您无权察看 2015-4-29 15:40:31 | [全部帖] [楼主帖] 楼主

mysql服务可以启动直来,但是用php进行连接的时候,出现Could not connect: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)。

排错过程:
到/tmp/下确实没有mysql.sock.
执行 bin/mysqld_safe –user=mysql ,可以看到提示,信息放到/var/lib/mysql/zuolong.err文件 里.zuolong为你的hostname
查看 /var/lib/mysql/yourhostname.err里面的信息,看到启动mysql时,会看到在/var/run/mysqld/生成mysqld.sock文件。
用ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock,重启一下mysql服务,php连接正常。
系统重启后,/tmp/msyql.sock文件又没了,错误又出现。
执行

bin/mysqld_safe –user=mysql –socked=/tmp/mysql.sock


在/tmp/里面可以生成mysql.sock,php也正常。
可是重启以后,系统是不会加上–socked的这项呀,查看了一下mysql自动启动脚本:

vim /etc/init.d/mysql


发现里面也没涉及到socked的地方。
头大了,不可能我手动在这里面配置吧。。。~_~
再次跑去修改/etc/my.cnf里面的socket=/tmp/mysql.sock,结果还是不行。找了大量资料,都发现不了问题。
最后,在偶然的机会,发现在/etc/里面还有一个mysql目录,进去又发现了一个my.cnf文件。这就奇怪了。
这个目录和文件 都是编译安装后自动生成的。而在/etc/下的那个my.cnf是我按网上教程自己copy来的。在里面无论怎么配置socket都不生效。

解决:

vim /etc/mysql/my.cnf


一看里面的配置,就知道问题所在了。

socket = /var/run/mysqld/mysqld.sock


修改为

socket = /tmp/mysql.sock


重启mysql,问题解决

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论