MySQL Workbench отправляет имя компьютера с логином, а не IP
Я пытаюсь подключить MySQLWorkbench к удаленному серверу MySQL.
Сервер предоставил доступ к
user@IPAddress
Однако, когда я пытаюсь подключить MySQLWorkbench, он отправляет
user@computername
вместо. Как настроить соединение для использования IP-адреса вместо этого в MySQLWorkbench?
Справка: удаленный сервер находится в локальной сети, поэтому мне нужно использовать локальный 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 автоматически пытается выполнить обратный поиск DNS любых IP-адресов, которые пытаются подключиться к нему, и DNS-имя - это то, что проверяется по вашим грантам.
Если вы запускаете mysqld
с --skip-name-resolve
опция, он пропустит поиск DNS и сопоставит его с IP-адресами.
Ссылка: http://dev.mysql.com/doc/refman/5.0/en/host-cache.html