当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
MySQL服务器没有运行,或者那不是它的套接字文件的位置(检查my.cnf)。
其他回答
注意,当mysql从my.cnf文件中读取套接字文件的位置信息时,mysql_secure_installation程序有时似乎不能正确地这样做。
所以,如果你像我一样,在安装时到处乱放东西,你可能会遇到这样的情况:你可以用mysql连接到数据库,但东西不能被保护(无论如何不使用那个脚本)。
为了解决这个问题,sreddy的建议很有效:从脚本期望套接字的位置到它实际所在的位置创建一个软链接。例子:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
(我使用/tmp/作为套接字的默认位置)
很可能是mysql。/var/lib/mysql/中不存在Sock。
如果你在另一个位置找到了相同的文件,那么符号链接它:
例如:我把它放在/data/mysql_datadir/mysql.sock中
切换用户到mysql,执行如下所示:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
这解决了我的问题
我也有同样的问题,当我研究日志时
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。我意识到我从来没有设置交换文件…
我按照这个设置交换文件,它工作。
请确保你已经正确安装了MySQL服务器,我遇到过这个错误很多次,我认为从套接字调试很复杂,我的意思是重新安装它可能更容易。
如果你使用的是CentOS 7,下面是正确的安装方法:
首先,添加mysql社区源代码 Yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
然后你可以通过yum install mysql-community-server安装它
用systemctl启动它:systemctl Start mysqld
如果您的my.cnf文件(通常在etc文件夹中)配置正确
socket=/var/lib/mysql/mysql.sock
可以使用以下命令检查mysql是否正在运行:
mysqladmin -u root -p status
尝试更改mysql文件夹的权限。如果你在当地工作,你可以尝试:
sudo chmod -R 777 /var/lib/mysql/
这为我解决了问题