我在 VMWare 中运行 Ubuntu。我安装了 mysql 5 服务器并注释掉 bind-address,然后重新启动了 mysql 服务器。我现在尝试连接到 mysql,但无法连接。我尝试使用 1) 代码和 2) MySql 网站上的 GUI 应用程序。两者都报告无法访问服务器。我需要做什么才能连接?
答案1
许多因素都可能导致这种情况(防火墙、其他入站端口阻塞问题、没有端口转发的 VMWare NAT、MySQL 未在正确的接口上监听/MySQL 未运行网络、MySQL 授予不正确...)
需要考虑的事项:
- MySQL 是否正在运行并通过网络运行(您可能需要为这些指定用户/密码)?
mysqladmin --protocol=socket ping # 检查是否可以通过 UNIX 套接字访问 mysqladmin --protocol=tcp ping # 检查是否可以通过 localhost TCP/IP 访问 mysqladmin --protocol=tcp --host=ipaddress ping # 检查是否可以通过外部 IP 访问(MySQL 可以配置为仅监听环回地址,也可以配置为完全*跳过网络*)
- 该机器是否可以从其他机器访问?运行
nmap -sT -p 22,3306 ip地址
从另一台机器,这将指示该机器是否可以通过 SSH/MySQL 端口访问。 - 如果虚拟机在 NAT 网络模式下运行(而不是桥接模式),则需要确保将正确的端口转发到机器的真实 IP 地址,或者使用 NAT 地址(可访问)进行通信
- VM 或 VM 主机上的防火墙是否阻止访问端口 3306(默认 MySQL 端口)?请检查防火墙规则(iptables -L 表示 iptables)。
- 如果您通过 DNS 访问 MySQL 服务器,DNS 是否会导致问题?在这种情况下,您可以尝试使用 IP 地址而不是主机名进行连接,以消除这种可能性
- 如果登录在计算机上有效,但远程计算机的权限被拒绝,请记住 MySQL 使用用户名、密码和主机名(允许使用通配符)执行访问控制。您可能需要调整授权表。
我希望这些能帮助你找到问题!
洛基
答案2
您还可以在 MySql 服务器框上执行类似“sudo tcpdump port mysql”的操作,并查看尝试从远程客户端连接时是否收到任何数据包。这将有助于缩小问题出现在网络哪一侧的范围。