无法连接:在“读取初始通信数据包”时丢失与MySQL服务器的连接,系统错误:0

时间:2009-06-07 13:59:36

标签: mysql ruby database-connection

我正在运行Rails应用程序,所以现在我正在尝试远程连接到mysql,我收到此错误 无法连接:在“读取初始通信数据包”时丢失与MySQL服务器的连接,系统错误:0

11 个答案:

答案 0 :(得分:11)

您可能需要检查 /etc/hosts.deny ,其中:

ALL: ALL: DENY

mysqld: ALL: DENY

是你的敌人。

答案 1 :(得分:4)

重新启动服务器对我有用。无需更改设置。

答案 2 :(得分:3)

从该主持人检查

shell> telnet IP 3306

如果MySQL启动并且可以访问,您将在telnet输出中看到mysql版本。 否则请检查防火墙等,直到telnet成功。

然后我建议你先用本机mysql客户端连接,从问题咏叹调中排除Rails。

答案 3 :(得分:3)

启用远程访问

MySQL服务器默认不侦听TCP端口3306。要允许(远程)TCP连接,请在/etc/mysql/my.cnf中注释以下行:

跳过联网

请记住通过添加以下行来编辑/etc/hosts.allow:

mysqld:ALL:ALLOW

mysqld-max:ALL:ALLOW

答案 4 :(得分:2)

您需要编辑您的mysql配置文件,默认情况下bind-adress设置为127.0.0.1

打开:/etc/mysql/my.cnf

bind-adress更改为您将用于将yoursef连接到数据库服务器的IP。

答案 5 :(得分:1)

谢谢你们的努力,我找到了解决方案,我想将远程连接设置为MySQLhere是一个有同样错误的人的链接 http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/

答案 6 :(得分:1)

mysqld-max:ALL:ALLOW为我解决了这个问题

答案 7 :(得分:1)

众所周知,除了我们运行不同操作系统(linux,osx,win $ hit等)之外,还有许多不同的方法可以在我们的机器上安装和配置mySQL dbms(数据库管理系统)

在我的情况下,特别是我得到了

connect': Lost connection to MySQL server at 'reading initial communication packet', system error: 102 (Mysql2::Error)

但是我甚至没有/etc/hosts.deny我只有/etc/hosts因为我使用简单的GUI OSX应用程序在我的OSX机器上安装了mySQL

enter image description here MySQL实例状态不行以上图像只是MySQL OSX APP的参考。

简单的服务器重新启动解决了这个问题。(在我的情况下,我必须重启我的机器,但这涉及重启MySQL服务器)

我终于能够再次访问我的localhost实例,不必更改,创建单个文件。

希望这会有所帮助,我看到Malcolm的答案和评论让我认为发布此内容很好。

答案 8 :(得分:1)

使用OS X? mysqld重新启动后,这个问题会消失一段时间,然后重新出现吗?收到这些错误时,请检查mysql服务器日志。我看到很多类似下面的条目:

2019-01-30T17:34:04.009979Z 0 [Warning] File Descriptor 1564 exceeded FD_SETSIZE=1024

此错误指出了可能的解决方案: https://expressionengine.com/blog/mysql-5.7-server-os-x-has-gone-away https://wilsonmar.github.io/maximum-limits/

其中之一是将以下设置添加到my.cnf

[mysqld]
table_open_cache=250

答案 9 :(得分:0)

似乎没有人回答这个问题,而且它似乎在最初提交后将近7年后重新出现。我在运行Capybara的Rails应用程序中看到了这个(使用phantomjs),我的集成规范(仅)会间歇性地失败。

重新启动机器暂时解决了问题。

然后我完全破坏了我的MySQL安装(请参阅https://community.jaspersoft.com/wiki/uninstall-mysql-mac-os-x)并使用自制软件重新安装它。问题似乎已经消失,但如果它回来我会更新这个答案。

完全破坏你的MySQL安装(来自https://community.jaspersoft.com/wiki/uninstall-mysql-mac-os-x):

打开终端窗口 使用mysqldump将数据库备份到文本文件! 停止数据库服务器

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*

编辑/ etc / hostconfig并删除行MYSQLCOM = -YES -

rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*

答案 10 :(得分:0)

操作系统:macOS

MySQL版本:5.7

杀死了当前的mysql服务进程

mysql.server stop

然后重新启动

mysql.server start

这为我解决了这个问题。