【发布时间】:2018-05-21 13:10:44
【问题描述】:
我正在尝试远程连接到在我的 Raspberry Pi 3 上运行的 MySQL 服务器(尽管在同一个 LAN 上)。
尝试通过 HeidiSQL 执行此操作会返回编码为 10061 的错误。一些研究表明我必须编辑配置以允许远程连接。
然而,配置不包含bind-adress x.x.x.x 行(/etc/mysql/my.cnf)供我注释掉。自己添加会破坏服务,在尝试重新启动时导致错误。
检查其他可能的配置文件位置只会导致空文件。
此外,与“默认”配置文件相比,我的配置文件要短得多,并且没有实际的语句,除了一些其他配置文件的包含(似乎)。这些包含的文件也是空的。
我现在迷路了,不知道如何允许远程连接到我的服务器。非常感谢任何帮助:)
【问题讨论】:
-
如果该行不存在并且解决方案是将其注释掉,那么不要添加它只是为了将其注释掉。从 HiediSQL 返回的完整错误是什么(除了数字)。这可能与您的用户在数据库中的设置方式有关。
-
@JNevill 完整的错误是:“无法连接到 'x.x.x.x' (10061) 上的 MySQL 服务器”。我已经对 root 用户和用户创建的用户进行了测试。两者都在“主机”设置为“%”(通配符)以及我尝试连接到数据库的 IP 的情况下进行了测试。
-
两个常见问题。正如您已经发现的那样: 1. MySQL 必须侦听/绑定到所有接口。运行
sudo netstat -ln | grep 3306进行验证。如果您看到0.0.0.0:3306,则设置为侦听所有传入网络。如果您看到127.0.0.1:3306,那么它只是在监听本地主机。如果您什么也看不到,说明 MySQL 没有(正确)启动。 2. Pi 上的防火墙,很可能是基于 IP 表的。运行sudo iptables -L -n以显示其设置。配置取决于 linux-distro 和其他 (firewall-cmd,csf, ...) 你能用这两个输出更新你的问题吗? -
@PetervanderWal 这可能是问题所在。运行
netstat命令会给我以下输出:tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN这表明它只侦听本地主机。iptables命令返回:hastebin.com/lizipupoze.lisp 我希望这是您想要的信息,并感谢您的帮助。我的下一步是什么? -
你真的把
bind-address x.x.x.x加到my.cnf了吗?该地址应为0.0.0.0。注意双d!该设置应该在该文件的[mysqld]组内。否则,我不知道……可以在其他位置添加一些 Linux 发行版风格的设置。
标签: mysql raspberry-pi remote-access