Прив'язка адреси MySQL 5.7 не працює


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
Давав

Я припускаю, що ви додали цей рядок у цей файл. Видаліть цей рядок і відредагуйте файл /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, перезапустив de server ще я все ще бачу "tcp 0 0 127.0. 0,1: 3306 ", коли я запускаю <netstat -tulpen
Чепеч

Відповіді:


39

Вони змінили пакет MySQL, щоб параметр прив'язки знаходився в /etc/mysql/mysql.conf.d/mysqld.cnf. Будь-ласка, змініть там параметр прив'язки та видаліть усе, що ви розмістили в /etc/mysql/conf.d/mysql.cnf.


Це смішно, хоча. Мета "conf.d" полягала в тому, щоб НЕ редагувати надані пакунки за замовчуванням та заміняти їх власною конфігурацією. Але оскільки "mysql.conf.d" переважає наше, немає надійного способу переконатись, що нарешті наші прийшли, якщо ми не редагуємо "mysql.conf.d / mysqld.cnf".
kenn

@kenn: додайте свій конфігурацію під mysql.conf.d / замість цього і назвіть його "x-something"
Белл

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.