- 浏览: 134157 次
文章分类
最新评论
连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。
另一个解决办法是你现在不能用套接字建立连接因为它不见了,你可以建立一个TCP/IP连接,例如,如果服务器主机是192.168.0.1,你可以这样连接:
1 |
%mysql -u root -h 192.168.0.1 -p |
2 |
%mysqladmin -u root -h 192.168.0.1 -p shutdown |
如果套接字文件被一个cron任务删除,问题将重复出现,除非你修改cron任务或使用一个或使用一个不同的套接字文件,你可以使用全局选项文件指定一个 不同的套接字,例如,如果数据目录是/usr/local/var,你可以通过将下列行加入/etc/my.cnf中,将套接字文件移到那里:
1 |
[mysqld] |
2 |
socket=/usr/local/var/mysql.sock |
3 |
[client] |
4 |
socket=/usr/local/var/mysql.sock |
对服务器和客户均指定路径名,使得它们都使用同一个套接字文件。如果你只为服务器设置路径,客户程序将仍然期望在原位置执行套接字,在修改后重启服务器,使它在新位置创建套接字
如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/mysql.sock”,在Unix的大多数版本上,你能通过为其设置sticky(t)位来保护你的“/tmp”文件系统。作为root登录并且做下列事情:
1 |
chmod +t /tmp |
这将保护你的“/tmp”文件系统使得文件仅能由他们的所有者或超级用户(root)删除。
你能执行ls -ld /tmp检查sticky位是否被设置,如果最后一位许可位是t,该位被设置了。
告诉你临时解决办法,找到mysqld,运行mysqld shut,mysqld start ,就ok了
启动mysql 报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
1、先查看 /etc/rc.d/init.d/mysqld status 看看mysql是否已经启动.
另外看看是不是权限问题.
2、确定你的mysql.sock是不是在那个位置,
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock
3、试试:service mysqld start
4、如果是权限问题,则先改变权限
1 |
chown -R mysql:mysql /var/lib/mysql |
2 |
/etc/init.d/mysqld start |
3 |
启动 MySQL: [ 确定 ] |
4 |
mysql -u root -p |
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因是,/var/lib/mysql 的访问权限问题。
1 |
chown -R mysql:mysql /var/lib/mysql |
接着启动服务器
1 |
/etc/init.d/mysql start |
服务器正常启动后察看 /var/lib/mysql 自动生成mysql.sock文件。
但是我的问题仍然没有得到解决。
问题终于解决:
方法: 修改/etc/my.conf:
01 |
[mysqld] |
02 |
datadir=/usr/local/mysql/data |
03 |
socket=/var/lib/mysql/mysql.sock |
04 |
|
05 |
[mysql.server] |
06 |
user=mysql |
07 |
basedir=/usr/local/mysql |
08 |
|
09 |
If there is not currently a section called [client], add one at the bottom of the file and copy the socket= line under the [mysqld] section such as: |
10 |
|
11 |
[client] |
12 |
socket=/var/lib/mysql/mysql.sock |
发现依旧如此,运行/etc/init.d/mysql start报错:Starting MySQLCouldn’t find MySQL manager or server
是mysqld服务没启,运行/usr/local/mysql/bin/mysqld_safe &
问题解决。
执行 PHP 时出现类似这样的错误信息:
Warning: MySQL Connection Failed: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111) in /home/httpd/html/show.php on line 9
请将 /tmp/mysql.sock link 到 /var/lib/mysql 目录里即可:
1 |
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock |
原文出自:http://jackitshot.blogbus.com/logs/37369180.html
发表评论
-
(转)mysql 格式化日期 DATE_FORMAT,FROM_UNIXTIME,UNIX_TIME等
2013-03-01 16:40 10341. DATE_FORMAT() 函数用于以不同的格式显示日 ... -
(转载)mysql通过关联修改表中两个字段的值
2013-01-21 15:28 1097mysql通过关联修改表中 ... -
转Error Code: 2006 - MySQL server has gone away(Error Code: 2006 - MySQL 服务器已离线)
2012-12-27 11:14 897刚才在导入数据库的时候 SQLyog 报错了Error Cod ... -
mysql添加用户和用户权限
2013-01-21 15:29 1822Mysql添加用户使用可以对mysql数据库用户表有操作权限的 ... -
主从服务器配置
2012-12-18 17:06 724安装环境:主服务器::192.168.1.10从服务器::19 ... -
同机MySQL主从同步设置
2012-12-18 17:02 7701、 配置主库my.ini port=3306 data ... -
MySQL主从复制与读写分离
2012-12-18 16:05 681MySQL主从复制(M ... -
mysql主从复制
2012-12-18 15:23 627mysql主从复制 怎么安装mysql数据库,这里不说了,只 ... -
(转载)MySQL的log-bin的日志功能
2012-12-18 15:10 612装mysql,运行一段时间后 ... -
(转载)mysql 远程连接速度慢的解决方案
2012-12-14 15:35 663PHP远程连接MYSQL速度慢,有时远程连接到M ... -
(转载)MySQL常用操作基本操作
2012-12-13 11:18 644MySQL常用操作基本操作,以下都是MySQL5.0下测试通过 ... -
MySQL 5.5版本下my.ini内[mysqld]项中不能再写default-character-set=utf8
2012-12-13 11:12 723原来在5.1版本时,为了解决中文乱码问题设置默认字符集为utf ... -
mysql从一个表向另一个表转移数据的存储过程
2012-12-11 10:59 790DELIMITER $$ USE `sms`$$ DROP ... -
(转载)MYSQL数据表损坏的原因分析和修复方法
2012-11-28 09:23 667一、表损坏的原因分析 以下原因是导致mysql 表毁坏的 ... -
MySQL日期时间函数大全
2012-11-17 10:38 612DAYOFWEEK(date) 返回日期date是星期几(1 ... -
(转载)Windows下安装MySQL最佳实践
2012-10-15 17:41 682一、背景 其实在Windows下安装MySQL可谓是一件很简 ... -
mysql 数据表合并并且只重复数据只读取一条
2012-09-21 14:56 1688mysql教程 数据表合并并且只重复数据只读取一条//首先我们 ... -
Linux下设置MySQL编码
2012-09-11 13:59 749在某些时候,我们需要要修改mysql默认数据库的编码,以保证某 ... -
mysql show processlist 显示mysql 查询进程
2012-09-10 16:05 783processlist命令的输出结果显示了有哪些线程在运行,可 ... -
MySQL中的临时表使用方法
2012-09-06 09:51 577当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量 ...
相关推荐
ERROR 2002: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111) 解决办法: /usr/local/mysql/bin/mysqladmin -u root > -S /var/lib/mysql/mysql.sock password 'your.passwd' ...
今天小编就为大家分享一篇关于Can't connect to local MySQL through socket '/tmp/mysql.sock'解决方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 出现问题原因: 有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socket ...
mysql 支持 socket 和 TCP/IP 连接。那么 mysql.sock 这个文件有什么用呢?本文给大家介绍的非常详细,需要的朋友参考下吧
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 的异常。是用dmg直接安装的以为安装包又出现了奇奇怪怪的错误,正欲卸载该版本时找到了我的问题的关键。 解决...
在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can’t connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时...
?php $link=mysql_connect(‘localhost’,’root’,... 运行后报错 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 但在 命令行中能进入mysql [root@localhost local]# mysql -u root -p E
最近在linux上装Aphace... can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock' 这个把我弄得几近崩溃,我在网上查找了很多的解决办法,大概有几种解决方案: 1.权限问题 2.修改/
php 不能连接数据库 php error Can't connect to local MySQL server through socket '/tmp/mysql.sock'
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) 解决办法: [root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root / > -S /var/lib/mysql/mysql.sock ...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 如果说出现这个一般就是因为MySQL没有起来 [root@localhost ~]# mysql -uroot -p ERROR 1045 (28000):...
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 分析:使用mysql –verbose –help进行分析,才发现原来port和socket对应的值都为0或者为空,也就是默认参数都...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) 2、故障分析 查看mysql实例的状态 [root@localhost scripts]# netstat -ntlp | grep 3306 tcp 0 0 :