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