Подключение к Mysql базе данных с удаленного - PullRequest
0 голосов
/ 19 января 2020

Проблема: у меня есть сервер, на котором установлено приложение Laravel и база данных. Но я хочу поделиться той же базой данных с другим сервером. И я хочу включить удаленный доступ.

Что я пробовал: я изменил файл конфигурации /etc/mysql/mysql.conf закомментированный bind-address = 127.0.0.1

Также изменен на bind-address = 0.0.0.0 или bind-address = *, не помогает (это то, что я везде делал)

UFW отключен

netstat -ltn возвращает

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     

не 127.0.0.1: 3306 предположим, что 0.0.0.1:3306?

Я пытаюсь подключиться с другого сервера

mysql -h xxx.xxx.xxx.xxx -u pf_remote -p

Я получил ошибку

Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)

Я думаю, что порт не открыт , но где еще я могу открыть. Я что-то пропустил?

Ответы [ 2 ]

1 голос
/ 19 января 2020

Найдите mysql.conf и установите

bind-address=0.0.0.0

Затем войдите в систему MySQL и выполните менее 2 команд

GRANT ALL PRIVILEGES ON *.* TO 'pf_remote'@'%' IDENTIFIED BY 'your_password' with grant option;
flush privileges;

, затем

sudo service mysql restart

Затем также убедитесь, что у вас нет подключений, блокирующих брандмауэр, проверьте

sudo ufw status

Если он включен, разрешите удаленные подключения к MySQL порту

sudo ufw allow 3306 && sudo ufw reload

Если вы используете Amazon Web Сервер служб, разрешающий подключение изнутри оболочки, работать не будет, вам нужно разрешить подключения с AWS Dashboard

0 голосов
/ 19 января 2020

Попробуйте предоставить пользователю привилегии для удаленного доступа:

 mysql> GRANT ALL ON yourDatabase.* TO user@'1.2.3.4' IDENTIFIED BY 'yourPassword';

Также не забудьте перезапустить службу mysql после изменения конфигурации:

sudo /etc/init.d/mysql restart
...