MySQL Workbench 发送带有登录名的计算机名称而不是 IP

MySQL Workbench 发送带有登录名的计算机名称而不是 IP

我正在尝试将 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 地址。

参考:http://dev.mysql.com/doc/refman/5.0/en/host-cache.html

相关内容