Я пытаюсь настроить сервер MariaDB 10.2 в тюрьме FreeBSD 11.2.
Сервер работает и отлично принимает удаленные подключения через IPv4. В соответствии с sockstat
, он также должен прослушивать IPv6:
db# sockstat | grep 3306
mysql mysqld 17516 177 tcp46 *:3306 *:*
Это действительно то, к чему я стремился, отсюда и мой my.cnf:
db# cat my.cnf | grep -vE "^#"
[client]
port������������= 3306
socket����������= /tmp/mysql.sock
[mysqld]
port������������= 3306
bind-address����= ::
socket����������= /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
server-id�������= 1
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
Однако, когда я пытаюсь подключиться к нему через IPv6, мой запрос истекает:
db# telnet db.local 3306
Trying fd0b:9867:5eb1::3306...
telnet: connect to address fd0b:9867:5eb1::3306: Operation timed out
telnet: Unable to connect to remote host
db# telnet ::1 3306
Trying ::1...
telnet: connect to address ::1: Operation timed out
telnet: Unable to connect to remote host
Через IPv4 это не так:
db# telnet 10.0.0.10 3306
Trying 10.0.0.10...
Connected to db.burnus.net.
Escape character is '^]'.
Y
5.5.5-10.2.22-MariaDB>8vmB=LG)M'zTti5g)3emysql_native_password^CConnection closed by foreign host.
db# telnet 127.0.0.1 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Y
5.5.5-10.2.22-MariaDB?',Jme7}$Wm@70-/FO<~mysql_native_password^CConnection closed by foreign host.
Конечно, оба адреса связаны с сетевым интерфейсом тюрьмы:
db# ifconfig em0 | grep inet
��������inet 10.0.0.10 netmask 0xffffffff broadcast 10.0.0.10
��������inet6 fd0b:9867:5eb1::3306 prefixlen 128
Нет брандмауэра.
Удаление bind-address
в my.cnf или изменение его на правильный IPv6-адрес или имя хоста тоже не поможет. Ты хоть представляешь, что я делаю не так?
Решил это. Естественно, дело дошло до ошибки маршрутизации. Все заявленное выше было настроено правильно, но хост перенаправлял весь трафик с порта 3306 на IPv4-адрес тюрьмы, что каким-то образом заставило службу MariaDB больше не доверять ему.