ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'跟swap

今天发现作为自己毕业设计的主数据库登录不进去了,每次遇到这种问题,心都虚了半截。

报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

上一次遇到这种问题的时候停一下然后重启即可

 service mysqld stop

service mysqld start

但是这次却不行,启动报错:

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

就 netstat -ntlp  | grep 3306查看实例状态

再次执行more /etc/my.cnf |grep sock 


发现socket中的var少了一个  “/”,当时就轻松了,以为解决问题,,,,修改、etc下的my.conf,启动仍然不行(现在明白这里的配置不影响启动,但是会影响到你的登录)

执行上面的 systemctl status mysqld.service 和  journalctl -xe 并没有发现有效的信息,百度到最有用的信息就是:

自己看日志发火。。

那就自己看日志吧,tail -n 100 /etc/log/mysql.log

130629  5:46:48 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130629  5:46:48 InnoDB: Completed initialization of buffer pool
130629  5:46:48 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130629  5:46:48 [ERROR] Plugin 'InnoDB' init function returned error.
130629  5:46:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130629  5:46:48 [ERROR] Unknown/unsupported storage engine: InnoDB
130629  5:46:48 [ERROR] Aborting

把错误复制出去百度,发现是由于swap的问题。(这里套用别人的图)



确实执行到这里就解决问题。可以进行启动和登录了。。。mysql启动报错太过于模糊,百度搜索答案去尝试太耗时,以后做到看完日志再去寻找答案。

关于swap其实我是第一次听说。。。然后百度搜索 看到这样一篇文章  希望对大家有帮助

点击打开链接


根据提供的引用内容,出现"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)"错误通常是由于MySQL服务器无法通过指定的套接字连接到本地MySQL服务器引起的。这可能是由于以下原因导致的: 1. MySQL服务器未启动:请确保MySQL服务器已经启动。可以使用以下命令检查MySQL服务器的运行状态: ```shell service mysql status ``` 2. MySQL服务器套接字文件路径不正确:请确保MySQL服务器套接字文件的路径与配置文件中的路径一致。可以使用以下命令查看MySQL服务器套接字文件的路径: ```shell grep "socket" /etc/mysql/my.cnf ``` 3. MySQL服务器套接字文件权限问题:请确保MySQL服务器套接字文件的权限正确。可以使用以下命令更改套接字文件的权限: ```shell sudo chmod 777 /tmp/mysql.sock ``` 4. MySQL服务器配置文件错误:请检查MySQL服务器的配置文件(通常是/etc/mysql/my.cnf)是否正确配置了套接字文件路径。可以使用以下命令编辑配置文件: ```shell sudo nano /etc/mysql/my.cnf ``` 然后找到并修改以下行: ```shell socket = /tmp/mysql.sock ``` 5. MySQL服务器端口被占用:请确保MySQL服务器所使用的端口没有被其他进程占用。可以使用以下命令查看端口占用情况: ```shell sudo netstat -tlnp | grep mysql ``` 如果以上方法都无法解决问题,可能需要重新安装MySQL服务器或者联系系统管理员进行进一步的故障排除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值