无法连接到 Ubuntu 中的 mysql 数据库

Posted

技术标签:

【中文标题】无法连接到 Ubuntu 中的 mysql 数据库【英文标题】:unable to connect to mysql database in Ubuntu 【发布时间】:2015-11-14 23:41:48 【问题描述】:

我现在面临这个问题好几天了。我正在尝试在Ubuntu 机器上连接到我的mysql。但我没有通过这个。请查看我运行的以下命令和错误消息。

root@ipadtest:/var/lib/mysql# mysql start

警告:全局可写配置文件 '/etc/mysql/my.cnf' 被忽略 ERROR 2002 (HY000): 无法通过套接字连接到本地 MySQL 服务器 '/var/run/mysqld/mysqld.sock' (111)

root@ipadtest:/var/lib/mysql# mysql -uroot -p

警告:全局可写配置文件 '/etc/mysql/my.cnf' 被忽略 输入密码: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

root@ipadtest:/var/lib/mysql# mysqld

警告:全局可写配置文件 '/etc/mysql/my.cnf' 被忽略 150821 11:34:38 [错误] 致命错误:请阅读“安全”部分 了解如何以 root 身份运行 mysqld 的手册!

150821 11:34:38 [错误] 中止

150821 11:34:38 【注意】mysqld:关机完成

root@ipadtest:/var/lib/mysql# mysql restart

警告:全局可写配置文件 '/etc/mysql/my.cnf' 被忽略 ERROR 2002 (HY000): 无法通过套接字连接到本地 MySQL 服务器 '/var/run/mysqld/mysqld.sock' (111)

root@ipadtest:/var/lib/mysql# mysqladmin -u root -p status

警告:全局可写配置文件 '/etc/mysql/my.cnf' 被忽略 输入密码:mysqladmin:连接到 'localhost' 的服务器失败 错误:'无法通过套接字连接到本地 MySQL 服务器 '/var/run/mysqld/mysqld.sock' (111)' 检查 mysqld 是否正在运行并且 套接字:'/var/run/mysqld/mysqld.sock' 存在!

谁能告诉我是什么问题。在我看来,数据库已损坏。如果是,那我该如何恢复? TIA。

【问题讨论】:

service mysqld restart 再试一下? 【参考方案1】:

错误在警告信息中解释得很清楚,它忽略了你的my.cnf

警告:全局可写配置文件 '/etc/mysql/my.cnf' 被忽略

尝试执行以下操作,然后重新启动服务器

chown mysql:mysql /etc/mysql/my.cnf
chmod 600 /etc/mysql/my.cnf

这会将文件的所有者设置为 mysql 并且权限 600 将只授予用户 mysql 读写权限该文件,它将禁止所有其他用户访问。

【讨论】:

我已经关闭了这个.. 现在文件权限看起来很像.. -rw------- 1 mysql mysql 3579 Aug 21 09:54 /etc/mysql/my.cnf ... 我现在需要重新启动 mysql 吗? mysql restart 还是别的什么? 它应该是这样的,现在照你说的做,service mysql restart,让我知道它是如何工作的。 它说... stop: Unknown job: mysql start: Unknown job: mysql :( 我执行了 show databases 命令,它说... root@ipadtest:/var/lib/mysql# show databases The program 'show' is currently not installed. You can install it by typing: apt-get install nmh root@ipadtest:/var/lib/mysql# 没有服务.. 它说... root@ipadtest:/var/lib/mysql# mysql restart ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)【参考方案2】:

检查/etc/mysql/my.cnf 的所有者,它实际上是mysql 并做一个

chmod go -rw /etc/mysql/my.cnf
service mysql restart

显然完全忽略了配置的内容并尝试通过可能未打开的本地套接字进行连接。

【讨论】:

修复文件权限没有帮助 出现错误 -- test@ipadtest:~$ mysql restart ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 )【参考方案3】:

我通过以下命令解决了这个错误:-

sudo chown mysql:mysql /Applications/XAMPP/xamppfiles/etc/my.cnf

之后执行第二个命令:-

sudo chmod 600 /Applications/XAMPP/xamppfiles/etc/my.cnf

它解决了我。遇到此问题的任何人都可以使用上述 cmd 尝试一次。

【讨论】:

以上是关于无法连接到 Ubuntu 中的 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法与远程用户连接到MySQL(托管在Ubuntu VPS上)

Ubuntu:无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

无法从Ubuntu上的Java程序连接到localhost上的MySQL

在 Ubuntu 中使用 Python 连接到 MySQL(奇怪的错误)

无法通过套接字连接到 mysql 服务器 'var 在 Ubuntu (Emma) 上运行 mysqld mysqld.sock

azure ubuntu 16.04 VM 无法连接到 azure 上的数据库