Назад | Перейти на главную страницу

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 теперь может подключиться!

MySQL автоматически пытается выполнить обратный DNS-поиск любого IP-адреса, который пытается к нему подключиться, и имя DNS - это то, что проверяется на соответствие вашим грантам.

Если вы запустите mysqld с --skip-name-resolve вариант, он будет пропускать поиск DNS и вместо этого сравнивать с IP-адресами.

Ссылка: http://dev.mysql.com/doc/refman/5.0/en/host-cache.html