Я хочу включить удаленный доступ к моему серверу 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».