我正在尝试将 MySQLWorkbench 连接到远程 MySQL 服务器。
服务器已授予访问权限
user@IPAddress
但是,当我尝试连接 MySQLWorkbench 时,它会发送
user@computername
而是。如何在 MySQLWorkbench 中配置连接以使用 IP 地址?
参考:远程服务器位于本地网络上,因此我需要使用分配给我的客户端的本地 IP 地址。
编辑
到目前为止我已经尝试过:
执行
sudo service mysql start --skip-name-resolve
从服务器:
mysql -u user@IPAddress -p --host=(ServerIPAddress)
返回:
mysql>
所以这说明用户帐户可以运行。此外,我使用以下命令确认它存在:
select user from mysql.user;
返回所有用户的表,其中存在我正在使用的用户。
我也打开了端口3306:
sbin/iptables -A INPUT -i eth0 -s clientIPAddress -p tcp --destination-port3306 -j ACCEPT
我仍然遇到
Access Denied for user
user@ComputerName (using password: YES)
回答:我删除了原来的用户账户
DROP USER 'user@IPAdress'
并将其添加回来:
GRANT ALL on foo.* To 'user'@'IPAdress' IDENTIFIED BY 'password';
勾选的位置很重要,因为用户名实际上是:
user@IPAdress
不是
user
MySQLWorkbench 现在可以连接!
答案1
MySQL 会自动尝试对任何试图连接到它的 IP 进行反向 DNS 查找,并且 DNS 名称会根据您的授权进行检查。
mysqld
如果您使用该选项启动--skip-name-resolve
,它将跳过 DNS 查找并改为匹配 IP 地址。