MySQL 5.7 bind-адрес не работает


17

Я всегда успешно устанавливал удаленное соединение для MySQL 5.5.

Сегодня я установил новый сервер с Ubuntu 16.04 и MySQL 5.7. Но по некоторым причинам я не могу заставить эту установку MySQL слушать других хостов, но 127.0.0.1.

Вот мой /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Я не мог подключиться к этому серверу MySQL с удаленного хоста, и когда я проверил свой netstat, я понял, что MySQL прослушивает только соединения localhost.

lsof -Pni :3306 вывод:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

В чем проблема?


Вы сбросили MySQL? Какой вывод у netstat -lntp?
Linuxx

@Linuxx Я даже перезапустил всю машину. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast

Я полагаю, вы добавили эту строку в этот файл. Удалите эту строку и отредактируйте файл /etc/mysql/mysql.conf.d/mysqld.cnf и измените там параметр.
Linuxx

1
@Linuxx Это работает как по волшебству :) Я не заметил, что есть еще один каталог * .conf.d. Таким образом, в основном 5.7 сохраняет конфигурацию [mysql] в каталоге conf.d, тогда как конфиги [mysqld] хранятся в mysql.conf.d. Спасибо! Пожалуйста, ответьте, и я приму это.
Hast

1
Я изменил bind-адрес на /etc/mysql/mysql.conf.d/mysqld.cnf и /etc/mysql/conf.d/mysql.cnf, перезапустил сервер, но все еще вижу «tcp 0 0 127.0. 0,1: 3306 ", когда я бегу <netstat -tulpen
Chepech

Ответы:


39

Они изменили пакет MySQL, чтобы параметр bind теперь находился в /etc/mysql/mysql.conf.d/mysqld.cnf. Пожалуйста, измените параметр связывания там и удалите все, что вы поместили в /etc/mysql/conf.d/mysql.cnf.


Это смешно, хотя. Цель "conf.d" состояла в том, чтобы НЕ редактировать значения по умолчанию, предоставляемые пакетом, и переопределять их собственной конфигурацией. Но так как теперь «mysql.conf.d» переопределяет наш, нет надежного способа гарантировать, что наши наконец появятся, если мы не отредактируем «mysql.conf.d / mysqld.cnf».
Кенн

@kenn: вместо этого добавьте свой конфигурационный файл в mysql.conf.d / и назовите его «x-что-то»
Bell

3
Конечно, но какой смысл "conf.d" тогда? Разве «mysql.conf.d» не является стандартным значением, предоставляемым пакетом, которое должно быть перезаписано «conf.d»? Я думаю, что порядок загрузки "conf.d" и "mysql.conf.d" должен быть изменен в "/etc/mysql/my.cnf" на уровне пакета MySQL.
KENN
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.