LINUX.ORG.RU
ФорумAdmin

Mariadb - не работает удалённое подключение.

 ,


0

1

Доброго дня.

Пытаюсь zabbix'ом с адреса 192.168.1.7 подключиться к MariaDB расположенной по адресу 192.168.1.6 - подключение не проходит. БД чистая, ничего не сконфигурировано. Всё делается из-под рута.

mysql_secure_installation не выполнялось

1) Где посмотреть логи подключений? Вебка заббикса пишет: Error connecting to database: Connection refused

2) Инфа с

mysqladmin -u root -p version

mysqladmin Ver 9.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Server version 10.0.29-MariaDB-0ubuntu0.16.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 42 min 45 sec

Система ubuntu 16.04

3) Ещё инфы:

MariaDB [(none)]> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mysql]> select host from user where user='root';

+-----------+

| host |

+-----------+

| % |

| localhost |

+-----------+

2 rows in set (0.00 sec)

Куда копать?

★★

Server version 10.0.29-MariaDB-0ubuntu0.16.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock

Таким макаром игнор лист скоро переполнится. Миллениалы это страшно.

Anoxemian ★★★★★ ()
Ответ на: комментарий от Anoxemian

Не успел сообщение удалить, в последний момент заметил, что на локалхосте висит.

BitSum ★★ ()

БД чистая, ничего не сконфигурировано.
Куда копать?

В сторону конфигурации БД, ее все равно придется делать, правильно? skip-networking

goingUp ★★★★★ ()
Ответ на: комментарий от goingUp

Как избавиться от skip-networking? Если конкретней, то мне нужно TCP, а не сокеты.

Пробовал исключительно для пользователя обрубить сокеты - не помогло. Адрес так же пробовал биндить, указав его в /etc/mysql/my.cfg bind-address = 192.168.1.6 - MariaDB настройки не приняла.

p.s. С БД не дружу.

BitSum ★★ ()

В /etc/mysql/mariadb.conf.d/50-server.cnf установить bind-address = 192.168.1.6 или 0.0.0.0 если интерфейс один Потом - systemctl restart mysql

зайти в mysql локально и сделать:

UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’;
FLUSH PRIVILEGES;

Пароль только не забудь свой поставить

Toten_Kopf ()
Ответ на: комментарий от Toten_Kopf

UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’;

FLUSH PRIVILEGES;

1) Пароль не принимало, у меня в пассе символ @ - пришлось сменить пасс на более простой.

2) Сразу скриншотом об ошибке: http://rgho.st/private/6LVgQQPvY/2e951cd0cf9637a54b620bdf08acfaff

BitSum ★★ ()
Ответ на: комментарий от BitSum

Так приняло:

UPDATE mysql.user SET authentication_string = PASSWORD('sthdth'), plugin = «mysql_native_password» WHERE User = 'root';

В любом случае не помогло.

Что ещё можно попробовать? С логов бы начать...

p.s.

mysqladmin -u root -p version http://data3.floomby.com/files/share/16_2_2017/21/LtEEEuDWlkKNvrfNo3NlgQ.jpg

с netstat'а tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 5035/mysqld

BitSum ★★ ()
Ответ на: комментарий от Toten_Kopf

Да, всё выполнил как сказали.

И с новым пассом подключаюсь.

1) Пароль не принимало, у меня в пассе символ @ - пришлось сменить пасс на более простой.

BitSum ★★ ()
Ответ на: комментарий от BitSum

Так всё-таки «подключаюсь» или «В любом случае не помогло»? И если это строка из нетстата - то там видно что у тебя mysql слушает только на loopback'e.

Toten_Kopf ()
Ответ на: комментарий от Toten_Kopf

Так всё-таки «подключаюсь» или «В любом случае не помогло»?

В любом случае не помогло.

И если это строка из нетстата - то там видно что у тебя mysql слушает только на loopback'e.

Верно.

BitSum ★★ ()
Ответ на: комментарий от BitSum

Но даже с учетом того, что 0.0.0.0:*, то проблема остаётся прежней.

Вероятно стоило бы всё-таки обратиться к логам, вот только на что конкретно обратить внимание? Я пытаюсь рыть логи забикса, которым подключаюсь к БД (которых кстати нет).

BitSum ★★ ()
Ответ на: комментарий от BitSum

Netstat чёрным по белому написал - mysql сервер слушает только на loopback'e. Те нолики что ты видишь - это адрес контрагента. Расшифровываю - mysql принимает подключения только по адресу 127.0.0.1 на порту 3306 от любого адреса с любого порта. У тебя косяк с сетевыми настройками mysql'a. Ты точно прописал «bind-address = 0.0.0.0» в файлик /etc/mysql/mariadb.conf.d/50-server.cnf? И я там выше вижу что ты эту же директиву вписал в my.cnf. Удали её из my.cnf и оставь только там где я сказал.

Toten_Kopf ()
Ответ на: комментарий от Toten_Kopf

Те нолики что ты видишь - это адрес контрагента. Расшифровываю - mysql принимает подключения только по адресу 127.0.0.1 на порту 3306 от любого адреса с любого порта.

Спасибо за разъяснение.

Ты точно прописал «bind-address = 0.0.0.0» в файлик /etc/mysql/mariadb.conf.d/50-server.cnf?

Точно. http://rgho.st/private/8m58nNcss/ff2fe224addbc491b592c605e2838f21

С нулями тоже результата нет.

И я там выше вижу что ты эту же директиву вписал в my.cnf. Удали её из my.cnf и оставь только там где я сказал.

Отсутствует, mysql «выплёвывает» данный параметр в my.cnf.

BitSum ★★ ()
Ответ на: комментарий от BitSum

Я не знаю что ты там наворотил, но этого достаточно, что бы иметь удалённые подключения по сети. Общий принцип такой - сказать mysql серверу слушать нужный тебе интерфейс (или 0.0.0.0 для всех интерфейсов), рестартануть mysql. Изменить значение столбца 'host' на '%' или на ip адрес 'х.х.х.х', откуда будет подключение, у тех пользователей которым нужен доступ удалённо. Если нужен доступ из под пользователя 'root' ему дополнительно нужно изменить значение столбца 'plugin' на 'mysql_native_password'. Сделать 'flush privileges'. Настроить firewall. Всё. Всем будет счастье, всем будет хорошо. Ну или не хорошо, если тебя потом ломанут. Но это уже другая история.

Toten_Kopf ()
Ответ на: комментарий от Toten_Kopf

> Ну или не хорошо, если тебя потом ломанут. Но это уже другая история.

Даже не представляю, как будут ломать локальную сеть...

БД на одной машине, сервисы на другой - общаются по локалке.

p.s.

Изменить значение столбца 'host' на '%' или на ip адрес 'х.х.х.х', откуда будет подключение, у тех пользователей которым нужен доступ удалённо.

И тут я ничего не понял...

MariaDB [mysql]> select host from user where user='root';

+-----------+

| host |

+-----------+

| localhost |

+-----------+

1 row in set (0.00 sec)

Ранее же было всё нормально...

BitSum ★★ ()
Ответ на: комментарий от BitSum

MariaDB [mysql]> SELECT Host,User,Password FROM user;

| Host | User | Password |

| % | root | *5F8DC4D02A920C5ACBDD948F88D1A508436112 |

Исправил, но подключиться всё равно не могу.

BitSum ★★ ()
Ответ на: комментарий от BitSum

Хотя нет, могу...

Спасибо, по сути решением было то, что предложил Toten_Kopf

И

UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';

UPDATE user SET Password=PASSWORD('новый пароль') WHERE User='root' AND Host='%';

Искренне благодарю за желание помогать :)

BitSum ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.