当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
我做了以下更改
在[mysqld]和my.cnf的[client]中都提到了socket的任何路径,并重新启动mysql
[mysqld] 插座= / var / lib / mysql / mysql。袜子
(客户端) 套接字= / var / lib / mysql / mysql.sock
其他回答
首先输入“service mysqld start”并登录
MySQL服务器没有运行,或者那不是它的套接字文件的位置(检查my.cnf)。
先尝试2、3种解决方案。如果您无法找到/var/lib/mysql/mysql.sock .sock,则仍然弹出错误提示
find /var/ -name mysql.sock
检查/var/中的可用空间
df
如果目录已满,请删除一些无用的文件/目录
rm /var/cache/*
也许你的问题现在可以解决了。
我也有同样的问题,当我研究日志时
Sudo tail -f /var/log/mysqld.log
InnoDB: mmap(137363456 bytes) failed; errno 12
200610 6:27:27 InnoDB: Completed initialization of buffer pool
200610 6:27:27 InnoDB: Fatal error: cannot allocate memory for the buffer pool
200610 6:27:27 [ERROR] Plugin 'InnoDB' init function returned error.
200610 6:27:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
200610 6:27:27 [ERROR] Unknown/unsupported storage engine: InnoDB
200610 6:27:27 [ERROR] Aborting
很明显没有足够的内存来启动InnoDB。我意识到我从来没有设置交换文件…
我按照这个设置交换文件,它工作。
我没有从上面所有的答案中找到任何解决方案,我确实有mariadb安装,从Debian 11的源代码安装(不是从Debian apt包)。所以每当我在终端中触发mysql命令时,我都会得到这个错误:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
和mysql错误日志只显示相同的错误套接字上面,这是我很难知道背后的原因
我所做的是删除我的发行版中有mariadb依赖文件的mailutils包。
因此,我只需要触发这两个命令
apt -y remove mailutils
apt -y autoremove
当我在终端运行mysql命令时,我再也没有socket错误了