我对 mysql 设置有疑问ubuntu 上的远程连接和 mysql?现在我想弄清楚为什么我无法连接。
我确保已注释掉 bind-address。我可以在虚拟机内 ping 服务器,但无法使用 从虚拟机内 ping 服务器mysqladmin --protocol=tcp --host=self_ip ping
。我还跟着检查我的端口是否打开,结果看起来是打开的。我在该虚拟机上设置了 samba,也可以毫无问题地访问它。看起来 ubuntu 也没有防火墙(我之前已经弄清楚了),所以我很困惑为什么服务器不允许我的连接。
显然配置文件在其他人那边有效http://www.pastie.org/742545
我使用 Ubuntu 6.06 LTS 只是因为“支持”的原因。所以希望这会“简单”?
答案1
我的猜测是这是链接问题的最后一步:
如果登录在计算机上有效,但远程计算机的权限被拒绝,请记住 MySQL 使用用户名、密码和主机名(允许使用通配符)执行访问控制。您可能需要调整授权表。
尝试以 root 身份登录 MySQL 服务器上的 MySQL 并运行:
# grant all on [database name].* to '[user name]'@'[remote client hostname or IP address]' identified by '[password]'
根据您的访问要求,您可能需要将“全部”权限降低为更严格的权限。
答案2
嗯。当您使用 --host=self_ip 时,您的意思是 --host=127.0.0.1 或 --host=192.168.NNN.NNN,还是字面上的 --host='self_ip'?
因为 --host=self_ip 字面意思是实际上调用网络上名为“self_ip”的主机
难道就这样吗?
答案3
首先在本地建立:mysql 是否正在运行 (ps aux | grep mysql)?
mysql 是否正在监听任何端口(netstat -ln | grep mysql)?
你能連接它嗎?
(如果你无法按照重置 root 密码的步骤操作这里(停止 mysql,从命令行使用 skip-grant-tables 启动。另外,一个很好的链接无法连接到[本地] MySQL 服务器直接来自参考手册。)
如果它在本地工作,那么您的问题与 VM 有关。
它是哪个虚拟机?您使用哪种网络(桥接还是 NAT)?