Назад | Перейти на главную страницу

MySQL не запускается после установки внешнего адреса привязки

Я хочу включить удаленный доступ к моему серверу MySQL, поэтому я установил параметр адреса привязки в [mysqld], который выглядит так:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
bind-address=**.**.**.66
port=3306
# skip-networking
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

Когда я комментирую bind-address, сервер запускается нормально. Однако, когда я это прокомментирую, он не перезапустится. Порт открыт и слушает.

Не могли бы вы помочь мне разобраться в этом? Спасибо

Как вы думаете, почему вам нужно использовать bind-address включить удаленный доступ?

Без опции bind-address попробуйте запустить команду netstat -ntlp | grep 3306. Если вы видите вывод, как показано ниже, то mysql прослушивает каждый IP-адрес, связанный с компьютером.

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23465/mysqld 

Вам действительно нужно только адрес привязки если вы хотите прослушивать определенный IP. Если вы хотите прослушивать запросы по всем адресам, оставьте это закомментированным или установите для него значение 0.0.0.0. Некоторые упакованные версии mysql поставляются со сценариями запуска / обслуживания, которые будут пытаться получить доступ к mysql на 127.0.0.1. Если вы используете опцию bind-address, тогда mysql будет привязан только к этому конкретному IP-адресу и ни к чему другому, что может нарушить любые сценарии, которые у вас есть в настоящее время.

Может быть, это поможет кому-то:

Похоже, что если bind-address заявлено в 2-х местах, сервис не запускается.

Возможно, вы быстро просмотрели свой /etc/conf/my.cnf файла и не видел второго появления bind-address. Однако обратите внимание, что файл может содержать !includedir директива, и некоторые из этих включенных файлов могут содержать второй bind-address.

Убедитесь, что остановленный экземпляр mysqld еще не запущен. Проверьте

ps aux|grep mysqld

и убить все процессы с помощью

kill -9

затем попробуйте снова запустить mysqld. Обратите внимание на процессы mysqld в состоянии «Sl».