Не удается подключиться к серверу mysql azure в виртуальной машине

у меня есть виртуальная машина Azure, содержащая систему Ubuntu, с сервером MySQL, и я хочу получить доступ к базе данных из веб-приложения.
Когда я установил mysql-сервер, я выполнил

$ iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
$ iptables -I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

разрешить tcp-подключения.
В файле /etc/mysql/my.cnf добавил bind-address = 168.63.178.87, который является "виртуальным IP-адресом", который сообщает мне панель Azure.

в mysql пользователь, которого я использую для подключения, имеет все привилегии в необходимой базе данных (я думаю):

mysql> SHOW GRANTS FOR 'user'@'%';
+-------------------------------------------------------------------------------------------------------------------+
| Grants for user@%                                                                                            |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'pass_ommited' |
| GRANT ALL PRIVILEGES ON `database`.* TO 'user'@'%'                                                          |
+-------------------------------------------------------------------------------------------------------------------+

но когда приложение пытается подключиться к базе данных, я получаю ошибку:

 CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '168.63.178.87' (4) 

(это фреймворк Yii, если это имеет значение).

у меня есть полный доступ по SSH к виртуальной машине, используя данный IP-адрес и определенный порт.
Azure также сообщает мне "внутренний IP-адрес", который является 10.78.28.85.
Я попытался привязать сервер MySQL к этому адресу и к 0.0.0.0, но ни один не сработал.

Я подозреваю, что проблема в перенаправлении, сделанном для доступа к моему конкретный экземпляр на сервере, но я не знаю, как ее решить.

4
задан vguzmanp
24.04.2023 22:46 Количество просмотров материала 2744
Распечатать страницу

2 ответа

Я, наконец, решил ее. Проблема заключалась в том, что у меня не было конечной точки в Azure.

Я создал конечную точку с 3306 порт и перезапущенный mysql-сервер с sudo restart mysql

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

6
отвечен vguzmanp 2023-04-26 06:34

конечной точки не хватает! Всего потратил 4 часа на решение этой проблемы. Вы также должны проверить, что ваш сервер имеет правило межсетевого экрана для порта MySql, и самое главное, правило является открытым:

as shown here

0
отвечен Evgeni Hasin 2023-04-26 08:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх