错误 2003 (HY000):无法连接到‘127.0.0.1’上的 MySQL 服务器 (111)

错误 2003 (HY000):无法连接到‘127.0.0.1’上的 MySQL 服务器 (111)

好的,免责声明:我绝对是 mysql 菜鸟。给我任何其他开发类型的领域,我都可以。

因此,我刚开始使用 Ubuntu 12.04 并设置了 mysql。从未真正使用过 localhost,因为我们在工作中有一个我经常访问的临时环境。但是,一个客户有一个非常大的数据库转储,我需要访问它,但我不想把它放在服务器上让每个人都处理,所以我尝试使用 localhost

每当我尝试通过 MySQL Workbench 访问它时,我都会收到错误,因此我查看了网上的几篇文章并尝试了几种不同的方法,但如果我在终端中运行以下命令,就会收到错误:

mysql -u root -p -h 127.0.0.1

产生以下内容

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

但是,如果我像这样访问 mysql:

mysql -u root -p

然后输入我的密码,我就可以正常访问mysql了。

以下是

/etc/mysql/my.cnf

目前包含的内容(我曾尝试寻找此文件的其他版本)。为简洁起见,我省略了所有注释掉的部分。

[client] 
port            = 3306 
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe] 
socket          = /var/run/mysqld/mysqld.sock 
nice            = 0

[mysqld]
user            = mysql 
pid-file        = /var/run/mysqld/mysqld.pid 
socket          = /var/run/mysqld/mysqld.sock 
port            = 3306
basedir         = /usr 
datadir         = /var/lib/mysql 
tmpdir          = /tmp 
lc-messages-dir = /usr/share/mysql 
skip-external-locking

key_buffer              = 16M 
max_allowed_packet      = 16M
thread_stack            = 192K 
thread_cache_size       = 8

myisam-recover         = BACKUP

query_cache_limit       = 1M 
query_cache_size        = 16M

log_error = /var/log/mysql/error.log

expire_logs_days        = 10 
max_binlog_size         = 100M

[mysqldump] 
quick quote-names 
max_allowed_packet      = 16M

[mysql]

[isamchk] key_buffer              = 16M

!includedir /etc/mysql/conf.d/

答案1

当你使用以下命令登录 mysql 时

mysql -u root -p

请运行此命令

SELECT USER(),CURRENT_USER();

用户()报告您如何在 MySQL 中进行身份验证

当前用户()报告您被允许在 MySQL 中进行身份验证的方式

我之前讨论过这个问题:我如何查看我以哪个用户身份登录 MySQL?

对于你的情况,我猜是当前用户()'root'@'localhost'

连接到 MySQL 需要做两件事127.0.0.1

  • 您需要用户'root'@'127.0.0.1'定义。这可能是用户()说。
  • 您需要明确使用 TCP/IP 协议

要创建用户,请登录 MySQL 并运行SHOW GRANTS;

无论备份是什么,将其复制并粘贴到编辑器中,localhost用替换127.0.0.1,将编辑的命令放入 mysql 中并执行它。

现在,要使用 TCP/IP 登录,请执行以下操作:

mysql -u root -p -h 127.0.0.1 --protocol=tcp

一旦您登录并运行SELECT USER(),CURRENT_USER();,您将看到一些不同的东西。

试一试 !!!

答案2

检查mysql服务器是否正在运行,配置防火墙允许mysql服务器端口。检查这个关联

答案3

并检查您的防火墙配置。

答案4

我在尝试连接到远程 mysql db 时遇到了同样的问题。

我通过打开数据库服务器上的防火墙以允许流量通过来修复此问题:

sudo ufw allow mysql

相关内容