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

Mysql, Sequel Pro: доступ запрещен, но соединение с терминалом в порядке

Я создал пользователя 'vasya'@'%' со всеми привилегиями на некоторых dbs на удаленном сервере.

Когда я подключаюсь к серверу по ssh, я могу mysql -u vasya -p без проблем.

Однако, когда я пытаюсь использовать туннель ssh через Sequel Pro, используя

host: 127.0.0.1
username: vasya
password: *****
port: 3306

ssh host: <My Server IP>
ssh user: <my server user that I used in terminal>
ssh password: ***********

Я получил:

Невозможно подключиться к хосту 127.0.0.1 из-за отказа в доступе.

Еще раз проверьте свое имя пользователя и пароль и убедитесь, что доступ из вашего текущего местоположения разрешен.

MySQL сказал: доступ запрещен для пользователя 'vasya' @ 'localhost' (с использованием пароля: ДА)

В my.cnf я установил это, хотя я не думаю, что это необходимо для туннелирования ssh:

#skip-networking
bind-address = 0.0.0.0

О да, я могу успешно подключиться к Sequel Pro, используя другого пользователя, которого я создал недавно, который ничем не отличается от vasya.

В чем может быть моя проблема с Васей?

проблема в том, что sequel pro с использованием туннеля ssh, вероятно, будет подключаться к localhost а не 127.0.0.1. Теперь вы можете подумать, что % может охватывать localhost, но это не так. Попробуйте сделать того же пользователя с теми же грантами, но вместо user@% вы будете делать user@localhost

Я столкнулся с этой проблемой на Ubuntu 18. Раньше на Ubuntu 16 он мог успешно подключаться. Нашел решение, опубликованное здесь на всякий случай, если кому-то интересно:

В последней версии MariaDB + Ubuntu18:

select * from mysql.user;

покажет, что у root @ local есть плагин unix_socket, из-за чего SSH-туннель Sequel Pro не смог использовать root для mysql.

Измените его:

UPDATE mysql.user SET plugin = 'mysql_native_password' where host='localhost' and user='root';

Затем вы можете снова войти в систему через туннель.

Догадаться. По незнанию, я запускал на сервере два экземпляра mysql - исходную установку вместе с xampp. Sequel Pro подключался к исходной установке, в которой, конечно же, не было моего вновь созданного пользователя.

Однако остается вопрос, почему он выбрал старый mysql, игнорируя пути, которые определяют установку xampp ... Ну ладно.

Спасибо всем, кто пытался помочь.