我正试图将MySQLWorkbench连接到远程MySQL服务器。
服务器已经授予访问权限
user@IPAddress
但是,当我尝试连接MySQLWorkbench时,它发送
user@computername
代替。 如何将连接configuration为使用MySQLWorkbench中的IP地址?
参考:远程服务器在本地networking上,所以我需要使用分配给我的客户端的本地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现在可以连接!
MySQL会自动尝试对任何试图连接到它的IP进行反向DNS查找,而DNS名称则是针对您的授权进行检查的。
如果使用--skip-name-resolve选项启动mysqld ,则会跳过DNS查找,然后与IP地址进行匹配。
参考: http : //dev.mysql.com/doc/refman/5.0/en/host-cache.html