Ответы:
Нет, нет (я только что проверил 1 час назад). Вы можете прокомментировать bind-адрес в my.cnf:
#skip-networking
#bind-address = 127.0.0.1
Если вы хотите только 2 IP-адреса, вам придется использовать брандмауэр.
socket
и bind-address
варианты.
Привязка к 127.0.0.x не сделает ее доступной для всех устройств, она сделает ее доступной только локально. Если вы хотите сделать его доступным для всех интерфейсов, вам следует использовать 0.0.0.0. Если вы хотите получить доступ к нему из более чем одного, но менее чем из всех интерфейсов, вам следует привязать к 0.0.0.0 и отключить брандмауэр от интерфейсов, через которые вы не хотите получать доступ.
Кроме того, в качестве второго уровня безопасности вы должны убедиться, что для всех ваших пользователей MySQL в поле хоста установлено значение, отличное от% (то есть на любом хосте).
INADDR_ANY (0.0.0.0) means any address for binding;
?
/etc/mysql/conf.d/bindaddress.cnf
файл с содержимым[mysqld] \n bind-address = 0.0.0.0
Вы не можете привязать более одного IP-адреса, но вместо этого вы можете связать все доступные IP-адреса. Если да, то просто использовать 0.0.0.0
для связывания адреса в файле конфигурации MySQL (например /etc/mysql/my.cnf) следующим образом :
bind-address = 0.0.0.0
Если адрес 0.0.0.0, сервер принимает соединения TCP / IP на всех интерфейсах IPv4 хост-сервера.
Кроме того, если адрес есть ::
, сервер принимает соединения TCP / IP на всех интерфейсах IPv4 и IPv6 хост-сервера. Используйте этот адрес, чтобы разрешить подключения IPv4 и IPv6 на всех интерфейсах сервера.
Или вы можете просто закомментировать bind-address=
, так что он будет привязан ко всем адресам. Но убедитесь, что вы не skip-networking
включили в my.cnf, если вы хотите разрешить и удаленные подключения (подробнее: MySQL: разрешить как удаленные, так и локальные подключения ).
После изменения адреса привязки не забудьте перезапустить сервер MySQL:
sudo service mysql restart
В конце концов вы можете запустить несколько экземпляров MySQL на одной машине (разные порты) с репликацией Master / Slave. Репликация позволяет копировать данные с одного сервера баз данных MySQL (главного) на один или несколько серверов баз данных MySQL (ведомых).
Читать далее:
Как уже отвечали другие, пока нет способа выборочно связать более одного интерфейса.
В Linux есть некоторые инструменты TCP, которые делают это возможным. В этой настройке вы настроите mysql для прослушивания 127.0.0.1, а затем будете использовать redir для выставления его на произвольных интерфейсах.
Я использовал это, чтобы помочь гостю виртуального ящика увидеть mysql, установленный на хост-машине.
redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &
Я думаю, что ваш вопрос связан с этой ошибкой http://bugs.mysql.com/bug.php?id=14979 В отчете об ошибке предлагается обходной путь.
До MySQL 8.0.13 --bind-address принимает одно значение адреса, которое может указывать один не подстановочный IP-адрес или имя хоста, или один из форматов подстановочного адреса, который разрешает прослушивание на нескольких сетевых интерфейсах (*, 0.0 .0.0 или: :).
Начиная с MySQL 8.0.13, --bind-address принимает одно значение, как только что описано, или список значений, разделенных запятыми. Когда опция именует список из нескольких значений, каждое значение должно указывать один IP-адрес без подстановочного знака или имя хоста; никто не может указать формат адреса подстановочного знака (*, 0.0.0.0 или: :).
Источник: https://dev.mysql.com/doc/refman/8.0/en/server-options.html
В my.cnf изменить (как правило, /etc/mysql/my.cnf в Linux или для Windows, проверьте этот ответ.
bind-address = 127.0.0.1
в
bind-address = 0.0.0.0
Затем перезапустите mysql (при перезапуске сервиса Ubuntu mysql ) в Windows обычно перезапускайте сервис через Win + R services.msc
0.0.0.0 говорит, что он привязывается ко всем доступным IP-адресам с портом, также указанным в my.cnf