1

Попытка настроить mysql для доступа с любого хоста.

> показать гранты для 'root' @ '%';

ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *.* Чтобы 'root' @ '%' с опцией GRANT

my.cnf

[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

Файлы в /etc/my.cnf.d: client.cnf enable_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf Нет содержит skip-networking

В server.cnf

bind-address=0.0.0.0

Я использую CentOS 7, uname -a дает

Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux

Сервер MySQL - 10.1.21-MariaDB MariaDB Server

Все еще не могу подключиться с удаленного хоста :(

Проблема определенно не в сети или брандмауэре.

Вышеуказанные настройки верны? В чем дело?

Ведь проблема была найдена в правилах iptables. Так что конфиг MySQL в порядке!

1 ответ1

0

Если мы посмотрим на конфигурацию, которая у вас есть (поскольку вы явно опубликовали ее и сказали нам, что в ней), похоже, она должна работать. По крайней мере официальный MariaDB KB будет указывать на это.

Таким образом, вы можете либо что-то упустить в этих файлах конфигурации, либо столкнуться с другой проблемой. Хотя вы и говорили, что проблема не может сделать ставку, связанную с сетью или брандмауэром, ваша последняя ошибка ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113) будет означать, что это все еще может быть проблемой ,

Вы можете попробовать подключиться к вашему локальному IP (127.0.0.1) на вашем сервере, используя mysql commend. Глядя на вопрос, который я связал, вы бы использовали:

mysql -h 127.0.0.1 -u root -p

Если вы сможете установить соединение с помощью этой команды, вы будете знать, что ваша MariaDB запущена и работает и принимает соединения на основе IP.

Теперь может случиться так, что он не привязывается к внешним IP-адресам (возможно, попытайтесь установить только ваш внешний IP-адрес для bind-host) или к вашему брандмауэру (клиенту или серверу), или другой сетевой компонент может создавать помехи и блокировать соединение. ,

Чтобы проверить, к чему привязан сервер, вы можете запустить его (как root или sudo):

netstat -l -n -p

Это должно привести вас к следующей строке:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1234/mysqld
...

Как видите, в этом случае сервер MySQL работает с адресом localhost на порту 3306.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .