Не удается подключиться к сокету после обновления с maraidab 10.2.29 -> 10.3.31 в SuSE SLES 12 - PullRequest
0 голосов
/ 13 марта 2020

Две недели go. SuSE обновила пакеты для своего SuSE Linux Enterprise Server (SLES) для mariaDB с 10.2.29-3.22.1 до 10.2.31-3.25.1. Это незначительное обновление разорвало соединения с базой данных на моем рабочем сервере SLES 12SP4, а также на моем сервере разработки SLES12SP5.

В этом обновлении возникла проблема с сокетными соединениями: до сих пор я объявлял сокет в my.cnf с socket = /var/lib/mysql/mysql.sock для группы [client] и [mysqld], которая была местоположением по умолчанию на SLES11 и работала безупречно.

Это поведение изменилось после обновления: когда мои приложения drupal php теперь пытаются подключиться к этому сокету, они выдают только PDOException: SQLSTATE[HY000] [2006] MySQL server has gone away in lock_may_be_available() (. Если я вызываю systemctl status mysql.service, если это мой терминал, он сообщает мне, что mysqld[pid]: refused connect from IP.

К счастью, я понял, что моя производственная машина работает по умолчанию socket = /run/mysql/mysql.sock. Я полагаю, что новая версия mariaDB не принимает символические ссылки, так как /var/lib/mysql расположен на другом томе и интегрирован с помощью символической ссылки в моей настройке.

Но моя машина разработки также отказывается от этого решения, я не могу снова заставить работать базу данных. Основное различие между prod и dev состоит в том, что я уже перенес dev на пакет обновления 5, поэтому я не решаюсь обновить производственную среду с SP4 до SP5.

  • Это не проблема брандмауэра, поскольку она не меняется после отключение брандмауэра
  • bind-address = 127.0.0.1, который также настроен в настройках drupal как хост
  • Я изменил каталог сокетов на /tmp/mysql.sock, так как он должен быть доступен из любого места без результата.
  • Права доступа к файлу srwxrwxrwx 1 mysql mysql 0 13. Mär 11:59 mysql.sock=
  • netstat -ln | grep mysql возврат unix 2 [ ACC ] STREAM LISTEN 670834 /tmp/mysql.sock
  • systemctl status mysql.service возврат mariadb.service - MySQL server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled) Active: active (running) since Fr 2020-03-13 11:59:54 CET; 3h 2min ago Main PID: 12393 (mysqld) Status: "Taking your SQL requests now..." Tasks: 30 (limit: 512) CGroup: /system.slice/mariadb.service └─12393 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql

Есть в журнале изменений mariaDB нет доказательств чего-либо, связанного с обработкой сокетов.

Кто-нибудь испытывал такую ​​же проблему? Или есть идеи, как я мог это исправить? К сожалению, я не эксперт по базам данных ...

Спасибо,

Роб

1 Ответ

0 голосов
/ 17 марта 2020

Я нашел решение: MariaDB 10.2.31-3.25.1. в SLES начинает использовать /etc/hosts.allow, который настроен иначе - гораздо более ограничен для моего разработчика, чем на моем производственном сервере. Поэтому клиент не смог связаться с сервером базы данных.

Интересно, где было введено другое поведение - я ничего не нашел в журналах изменений mariaDB ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...