我收到错误:
"在读取初始通信数据包时丢失了与MySQL服务器的连接,系统错误:0"
而我要连接我的数据库.
如果我使用localhost一切正常.但是,当我使用下面的实时IP地址时,它会收到错误:
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
Tho*_*ard 95
这里有人建议它可能是防火墙问题:
我刚遇到这个问题,发现它是我的防火墙.我使用PCTools Firewall Plus,它不允许完全访问MySQL.一旦我改变了它就没事了.希望有所帮助.
可能是吗?
另外,有人在这里表明,这可能是因为MySQL服务器绑定到环回IP(127.0.0.1 /本地主机),有效地削减你关闭从"外部"连接.
如果是这种情况,您需要将脚本上传到Web服务器(可能还运行MySQL服务器)并将您的服务器主机保留为"localhost"
小智 39
打开名为my.cnf的mysql配置文件并尝试查找"bind-address",这里用你的live server ip替换设置(127.0.0.1 OR localhost)(你在mysql_connect函数中使用的ip)
这肯定会解决问题.
谢谢
sNI*_*sss 25
1)允许远程连接MySQL.编辑文件:
>sudo nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
评论专栏:
#bind-address = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
重启MySQL:
>sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
2)创建用户进行远程连接.
>mysql -uroot -p
CREATE USER 'developer'@'localhost' IDENTIFIED BY 'dev_password';
CREATE USER 'developer'@'%' IDENTIFIED BY 'dev_password';
GRANT ALL ON *.* TO 'developer'@'localhost';
GRANT ALL ON *.* TO 'developer'@'%';
Run Code Online (Sandbox Code Playgroud)
3)在我的情况下,我需要使用Ubuntu从Windows远程连接到VirtualBox机器.所以我需要在iptables中允许端口3306:
>iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
小智 15
设置新的从服务器时出现此问题.发现主服务器/etc/hosts.allow
文件中缺少从属服务器IP地址.添加了IP地址,让我连接到主服务器.
请注意,我使用hosts.allow
和hosts.deny
控制访问.
小智 7
我有这个问题,它最终成为先前的系统管理员改变了MySQL正在运行的端口.MySQL Workbench试图连接到默认的3306,但服务器在20300上运行.
该错误意味着它没有收到来自它期望找到服务器的端口的响应。原因范围从联系错误的机器(出于多种原因之一)到服务器不在预期的端口上。
在 /etc/mysql/my.cnf 中检查您的服务器绑定到哪个端口。这是否与您的连接语句中的内容相对应。如果它们匹配,则尝试从服务器本身和运行客户端的机器的命令行连接 mysql。如果它在一个地方而不是另一个地方工作,那么您可能有防火墙/路由器配置问题。
我的问题是MySQL只绑定到linux上的lo.为了解决问题我编辑了my.cnf(在/etc/mysql/my.cnf找到)删除行绑定地址= 127.0.0.1
这允许mysql绑定到任何网络接口
小智 5
我刚刚在 Windows 机器上设置了 mysql。当我尝试连接同一个盒子上的 Navicat MySql 客户端时,我收到了 OP 的错误。我必须指定 127.0.0.1 作为主机,这就完成了。
本地主机或服务器实际 IP 地址都不起作用。
小智 5
尝试使用MySQL Workbench 6.3连接到Google Cloud SQL时,我发生了这个错误.
经过一番研究后,我发现我的IP地址已被互联网提供商更改,并且他不被允许进入Cloud SQL.
我授权并重新开始工作.
我遇到了同样的问题。我检查并尝试设置AllowTcpForwarding Yes,但我的sshd_config中缺少它,所以没有帮助。我没有更改sshd_config或my.cnf。确保 ssh 主机名与 mysql 主机名不同(使用 localhost)。
在工作台中,选择 + 添加新连接并设置以下内容:
测试连接。应该会成功,然后点击“确定”。Viola!
还有一个原因……
我遇到了一个 Ubuntu 服务器,那里的所有东西都是定制的,由于同样的错误而无法连接。
这个设置在里面 /etc/ssh/sshd_config
PermitTunnel no
Run Code Online (Sandbox Code Playgroud)
变成后
PermitTunnel yes
Run Code Online (Sandbox Code Playgroud)
我能够远程连接到我的 MySQL 数据库