Не работает подключение к серверу MySQL, не удается подключиться.
Как разрешить удаленные подключения к серверу базы данных MySQL
Как разрешить удаленные подключения к серверу базы данных MySQL
27.01.2020 15:05:30
|
|
|
27.01.2020 15:25:40
Очень важно какую вы ошибку точно видите:
1. ERROR 2003 (HY000): Can't connect to MySQL server on 'X.X.X.X'" - либо порт 3306 не открыт, либо сервер MySQL не прослушивает IP-адрес. 1.1. Проверяем слушает ли MySQL 3306 netstat -nat | grep :3306 если такой ответ: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN То необходимо сюда /etc/my.cnf [mysqld] bind-address = 0.0.0.0 # skip-networking systemctl restart mysql Должно быть так: tcp6 0 0 :::3306 :::* LISTEN 1.2 фаервол блокирует: Iptables Если вы используете iptables в качестве брандмауэра, команда ниже разрешит доступ с любого IP-адреса в Интернете к порту MySQL. Это очень небезопасно. sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT Разрешить доступ с определенного IP-адреса: sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT 2. "ERROR 1130 (HY000): Host ‘XXX.XX.XX.XX’ is not allowed to connect to this MySQL server" пользователь, которому вы пытаетесь войти, не имеет прав доступа к удаленному серверу MySQL. Решение создать дополнительного администратора для внешнего подключения: 1. mysql -u root -p 2. CREATE USER 'remroot'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'remroot'@'%' WITH GRANT OPTION;
Также есть вариант обновить текущие привелегии, екущего пользователя: 1. mysql -uroot -p Внутри оболочки MySQL используйте GRANTоператор для предоставления доступа удаленному пользователю. 2. GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password'; Где: database_name – Имя базы данных, к которой будет подключаться пользователь. user_name – это имя пользователя MySQL. ip_address – это IP – адрес , с которого пользователь будет подключаться. Используйте, %чтобы позволить пользователю подключаться с любого IP-адреса. user_password – это пароль пользователя. Например, чтобы предоставить доступ к базе данных dbname пользователю с именем andreyex с паролем my_passwd с клиентского компьютера с IP 10.8.0.5, вы должны выполнить: 3. GRANT ALL ON dbname.* TO andreyex@'IPXX.x.x.XX' IDENTIFIE |
||||
|
||||
Форма ответов