ERROR 2003(HY000):无法连接到'127.0.0.1'(111)上的MySQL服务器[尽管注释掉了绑定地址和跳过网络]


0

好的,免责声明:我是一个绝对的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/

你能添加正在运行的mysqld进程的完整命令行,以及输出netstat -anp | grep 3306吗?
2013年

Answers:


0

当你登录mysql时

mysql -u root -p

请运行此命令

SELECT USER(),CURRENT_USER();

USER()报告您尝试在MySQL中进行身份验证的方式

CURRENT_USER()报告如何允许您在MySQL中进行身份验证

我之前讨论过这个问题:如何查看我在MySQL中登录的用户?

在你的情况,我的猜测是,CURRENT_USER()'root'@'localhost'

您需要使用以下两种方式连接到MySQL 127.0.0.1

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

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

无论是什么来备份,复制并粘贴到编辑器中,替换localhost127.0.0.1,将编辑的命令命令到mysql并执行它。

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

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

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

试试看 !!!


很好的答案。我不确定它目前是否在100%工作,但我确信它会。我现在没时间检查。我会回复。由于你的细节,给你投票。尼斯!
Kyle O'Brien



0

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

我通过在数据库服务器上打开防火墙来修复它,以允许通过:

sudo ufw allow mysql
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.