ERROR 2002 (HY000): Can’t connect to local MySQL server through socket /var/lib/mysql/mysql.sock(2)

  • Post author:
  • Post category:mysql


服务器数据库跑着跑着突然就宕机了。莫名其妙,之前用的都是好好的,为什么突然宕机了呢?分析步骤如下:

  1. 使用mysql尝试连接,发现报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/storage/db/mysql/mysql.sock’ (2)
  2. 使用myql -uroot -p密码  连接,报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/storage/db/mysql/mysql.sock’ (2)  同样的202错误。
  3. 使用mysql -h 127.0.0.1 测试链接,换了一种错误。
  4. 查看mysql的日志文件,ming命令:vi /var/log/mysqld.log  查看错误的日志部分。


错误如下:

中文翻译:

InnoDB:mmap(137363456字节)失败; errno 12
2019-06-08 09:08:05 14335 [错误] InnoDB:无法为缓冲池分配内存
2019-06-08 09:08:05 14335 [ERROR]插件'InnoDB'init函数返回错误。
2019-06-08 09:08:05 14335 [ERROR]插件'InnoDB'注册为STORAGE ENGINE失败。
2019-06-08 09:08:05 14335 [错误]未知/不支持的存储引擎:InnoDB
2019-06-08 09:08:05 14335 [ERROR]中止

错误原因:无法为缓冲池分配内存,说明本机内存可能不够用了。查看一下本己内存使用情况。

查看本机内存情况: free -h 或 free -m


解决方法

1.因为由于是内存不够用的问题,也可以说你的服务器配置过低,需要考虑服务器配置升级的问题。


  1. 修改mysql配置文件my.cnf

    ,添加如下设置参数:

    把mysql给InnoDB分配的内存设置为8M

innodb_buffer_pool_size = 8M

2.重启数据库:/etc/init.d/mysqld start



版权声明:本文为lvhaoguang0原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。