Назад | Перейти на главную страницу

MariaDB отказывается от удаленных подключений

Я просмотрел множество руководств и вопросов, но все еще не могу заставить его работать.

Я использовал следующий отличный пример: MariaDB отказывается от удаленных подключений Но все равно не удалось подключиться ... Но спасибо Делит за все шаги и этот идеальный шаблон! XD

Я установил MariaDB на CentOS 7, а не на Ubuntu, как большинство других. Затем настройте двух пользователей, один из которых предназначен для использования localhost и phpMyAdmin, этот пользователь может войти через phpMyAdmin и SSH @ localhost. Затем я добавил еще одного пользователя, который будет использовать его как логин для моего подключающегося сервера.

Пользователи добавляются как:

CREATE USER 'clust3r1ogin'@'%' IDENTIFIED BY '';  And GRANT all permissions. 

Работают ли локальные связи?

Нет, я не могу подключиться как пользователь через ssh на сервере:

[root@zeus ~]# mysql -u clust3r1ogin -p
Enter password:
ERROR 1045 (28000): Access denied for user 'clust3r1ogin'@'localhost' (using password: YES)

Другой пользователь localhost работает нормально ...

Вы проверили, что пользователи добавлены правильно?

Я думаю так:

MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
+--------------+-----------+
| User         | Host      |
+--------------+-----------+
| clust3r1ogin | %         |
| root         | 127.0.0.1 |
| root         | ::1       |
+--------------+-----------+
3 rows in set (0.00 sec)

Вы разблокировали брандмауэр?

Да иначе я бы получил еще одну ошибку? Но я убежал: firewall-cmd --zone=public --add-port=3306/tcp --permanent

Я немного изменил его, чтобы он разрешал подключаться к порту только определенным IP-адресам.

Вы проверяли правильность настроек в файле my.cnf?

Неправильные настройки в my.cnf (/etc/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

Вы проверяли другие файлы конфигурации?

Да. У них не было и обидных строк.

Телнет работает?

Да.

[root@titan ~]# telnet zeus.xxx.xxx 3306
Trying xxx.xxx.xxx.xxx...
Connected to zeus.mairel.com.
Escape character is '^]'.
Y
5.5.5-10.1.22-MariaDBAYm9rS)q?�QQ%`98N_q<tVmysql_native_passwordConnection closed by foreign host.

Какой интерфейс использует сервер?

Местное только кажется:

[root@zeus ~]# netstat -ntlup | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      1198/mysqld

Вы не забыли перезапустить? Да. Я возобновил использование этого между всеми попытками:

service mariadb restart

Я больше не понимаю, что не так. Бьюсь об заклад, это какая-то конфигурация, но пока не повезло ...

Так как Делит предложил я добавил

[mysqld]
bind-address = ::

Чтобы my.cnf файл но не повезло ...

Когда я использую свой другой логин localhost для удаленного доступа, после изменения HOSTпараметр для % Подстановочный знак все еще та же ошибка:

Unable to connect to the MySQL host “zeus”. Connection failed with error: Access denied for user 'local_user'@'titan' (using password: YES)

Проблема заключалась в следующем. Пользователи, созданные с помощью SSL Required вариант. Отключение этого параметра решило все проблемы с подключением!

Мне нужно было настроить MySQL для удаленного тестирования.

Я использую ubuntu, и мне пришлось изменить

bind-address = 0.0.0.0

Вместо того

bind-address = 127.0.0.1

Мой был в /etc/mysql/mariadb.conf.d/50-server.conf файл.

Я нашел это, выполнив:

$ cd /etc/mysql
$ grep bind-address *
$ grep bind-address */*
$ grep bind-address */*/*

Ищите это так. Это может быть или не быть в /etc/mysql. Смотрите также и под верхним каталогом.

Также сделайте grep ищи skip-network и, если найдете, закомментируйте или удалите. И если бы вам пришлось добавить bind-address, скорее всего, у него

skip-networking 

строка в файле конфигурации. Снова используйте grep найти это.

Затем, чтобы проверить, войдите на другой компьютер и выполните команду

$ mysql -u user-name -h server-ip-address -p

чтобы увидеть, позволяет ли он вам подключиться таким образом.

отключил selinux, решил все проблемы с подключением