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

Posted

技术标签:

【中文标题】无法连接:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0【英文标题】:Could not connect: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 【发布时间】:2010-11-01 00:10:41 【问题描述】:

我正在运行一个 Rails 应用程序,所以现在我正在尝试远程连接到 mysql,但我收到了这个错误:

【问题讨论】:

我在使用parallel_tests gem 时偶尔会遇到这个问题,我可以通过在我的my.cnf 文件中增加max_connectionsmax_connect_errors 的值来减少/修复它。说它已经解决还为时过早,但我们会看到...... 【参考方案1】:
mysqld-max: ALL : ALLOW 

为我解决了问题。

【讨论】:

【参考方案2】:

启用远程访问。

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

skip-networking

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

mysqld: ALL : ALLOW

mysqld-max: ALL : ALLOW

【讨论】:

截至 2018 年 3 月 25 日在 Mac OS Sierra 10.12.16 上:我的文件 my.cnf,不在此处的位置(我 认为它在 @ 987654326@),不包含skip-networking这一行 2018-03-25:GHOST:虽然创建一个``` /etc/hosts.allow``` 最初似乎对我有用,然后症状又回来了。 (使用 Capybara poltergeist phantomjs v 2.1.1 运行 Mac OS 10.12.6 的 Rails 4.2.5)【参考方案3】:

操作系统:macOS

MySQL 版本:5.7

杀死当前mysql服务进程

mysql.server stop

然后重新开始

mysql.server start

这为我解决了问题。

【讨论】:

【参考方案4】:

使用 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-awayhttps://wilsonmar.github.io/maximum-limits/

其中一个正在向 my.cnf 添加以下设置

[mysqld]
table_open_cache=250

【讨论】:

最近在 OSX 上每天都在发生这种情况......我已经厌倦了重新启动它 @slashdottir 它仍然可以从 Google 缓存中获得 webcache.googleusercontent.com/… 并且至少有一个镜像 pastebin.com/QwAysbYm【参考方案5】:

众所周知,除了我们都运行不同的操作系统(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

MySQL 实例状态为 NOT OK 以上图片仅供 MySQL OSX APP 参考。

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

我终于可以再次访问我的本地主机实例,无需更改,创建单个文件。

希望这会有所帮助,我看到 Malcolm 的回答和 cmets 并让我觉得发布这个很好。

【讨论】:

【参考方案6】:

似乎没有人回答这个问题,而且它似乎在最初提交近 7 年后再次成为一个问题。我在运行 Capybara(使用 phantomjs)的 Rails 应用程序上看到了这一点,我的集成规范(仅)会因此间歇性地失败。

重启机器暂时解决了这个问题。

然后我将我的 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*

【讨论】:

【参考方案7】:

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

【讨论】:

重启 MySQL 对我有用。不知道为什么这需要如此反对。 我同意你的看法,因为我注意到了一些赞成票以及积极的 cmets,当然在我的情况下,我所要做的就是重新启动 mysqlserver 我赞成答案和评论,因为这对我来说实际上是一个修复 我注意到重新启动确实可以暂时修复症状,但它会再次出现。 赞成,因为这是一个快速修复,但它肯定不能解决根本原因。【参考方案8】:

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

打开:/etc/mysql/my.cnf

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

【讨论】:

same here..没有解决..通常如果我重新启动服务器,它会备份并再次工作。检查/etc/hosts.deny,尝试127.0.0.1localhostliveserver-ip...【参考方案9】:

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

ALL: ALL: DENY

mysqld: ALL: DENY

是你的敌人。

【讨论】:

这解决了它。是修复 my.cnf 并转发 3306 后的最后一道屏障。 将此添加到您的 /etc/hosts.allow 以解决问题:mysqld: ALL 您可能只允许来自某些网络的客户端,例如:mysqld: 192.168.1.0/255.255.255.0 天哪,你救了我。 不幸的是,我在这个位置没有这样的文件。 $ cat /etc/hosts.denycat: /etc/hosts.deny: No such file or directory;我在 Mac OS Sierra 10.12.6 窗口中的 /etc/hosts.deny 文件在哪里?【参考方案10】:

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

【讨论】:

堆栈溢出策略不鼓励通过链接回答;所有答案都是第一方答案【参考方案11】:

从该主机检查

shell> telnet IP 3306

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

然后我建议你先连接本地 mysql 客户端,将 Rails 从问题 aria 中排除。

【讨论】:

你应该输入真实的IP地址而不是单词“IP”。在我的情况下,我得到了一个版本,当我想从同一台机器登录时,它可以正常工作,但是当我想从外部(比如从其他机器)登录时,我会得到上面帖子中所述的异常。

以上是关于无法连接:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0的主要内容,如果未能解决你的问题,请参考以下文章

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

在“读取初始通信数据包”时失去与 MySQL 服务器的连接 [重复]

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

在读取初始通信数据包时失去与 MySQL 服务器的连接,系统错误:111

Google App Engine 和 Cloud SQL:在“读取初始通信数据包”时失去与 MySQL 服务器的连接

与 MySQL 服务器的连接丢失(错误:111)