Я пытаюсь разбитьзадачаотладки AWS на rubymine на более мелкие фрагменты. Я хотел бы подключиться к серверу mysql, работающему на AWS. Поэтому я сделал следующее:
первый:Создайте SSH-туннель для пересылки всех запросов localhost на порт 3307 на порт 3306 на AWS:
ssh -l ubuntu -i 'path/to/private/key/privateKey.cer' -L 3307:aws.port:3306 aws.port -N -v -v
второй:подключиться к mysql через порт 3307
mysql -h 127.0.0.1 -P 3307 -u root -p
проблема: на моем хост-компьютере происходит сбой со следующей ошибкой:
ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server
и журнал на AWS выводит следующее:
debug1: Connection to port 3307 forwarding to 54.193.1.19 port 3306 requested.
debug2: fd 7 setting TCP_NODELAY
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug2: channel 2: zombie
debug2: channel 2: garbage collecting
debug1: channel 2: free: direct-tcpip: listening port 3307 for 54.193.1.19 port 3306, connect from 127.0.0.1 port 64938, nchannels 3
примечания:
- Я убедился, что группа безопасности сервера aws, к которому я подключаюсь, разрешает
ssh
подключения через порт 22. - Я убедился, что
/etc/hosts.deny
в AWS нет localhost или 127.0.0.1 в списке.
идеи?
решение1
Сообщение об ошибке
ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server
исходит от MySQL. Чтобы разрешить удаленный доступ для пользователя root, вам нужно специально разрешить это для конкретной базы данных на сервере mysql
mysql -u root -p
mysql> grant all privileges on somedatabase.* to 'root'@'178.135.138.61' identified by 'somepassword';
mysql> flush privileges;
Это позволит пользователю root подключаться к MySQL с адреса 178.135.138.61 со всеми привилегиями на somedatabase.
Вам, вероятно, следует прочитатьДокументация по безопасности MySQLв частностиКонтроль доступаиУправление пользователямиглавы.