Я создал пользователя '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 ... Ну ладно.
Спасибо всем, кто пытался помочь.