我正在运行Rails应用程序,所以现在我正在尝试远程连接到mysql,我收到此错误 无法连接:在“读取初始通信数据包”时丢失与MySQL服务器的连接,系统错误:0
答案 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
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
这为我解决了这个问题。