Can’t connect to local MySQL server through socket?
Доброго времени суток. Столкнулся с такой проблемой, которую никак не могу разрешить в свою пользу - на виртуальной машине под Debian 10 настроена и установлена система Zabbix, которая успешно функционировала на протяжении двух месяцев. Две недели не контактировал с системой, позавчера попытался зайти на Web-интерфейс и обнаружил вот такую ошибку "Database error.Error connecting to database: Permission denied". Полез в Debian, а там выяснилось, что служба Mariadb не хочет запускаться и выдает следующее "Job for mariadb.service failed because a fatal signal was delivered to the control process". Log-файл Zabbix пишет, что "Z3001. Connection to database 'zabbix' failed:[2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'. Данный файл, mysqld.sock, пустой и изначально его не было в этой папке, как собственно и самой папки. Был создан по мануалам из сети по решению этой проблемы, но не помогло. Порт 3306 не занят, проверено lsof -Pn -iTCP:3306. Помогите, пожалуйста, решить проблему, а то в сети одни и те же решения, которые не помогают.
Сокет не нужно создавать вручную. Он должен создаваться сервисом mysql (или mariadb), его путь может отличаться в разных дистрибутивах, посмотрите в конфиге mysql (или mariadb) этот путь. Также и порт может быть не 3306, нужно посмотреть там же в конфиге. И вообще, надо убедиться, что сервис mysql (или mariadb) запущен.
В конфигурационном файле MariaDB написано следующее:
socket = /run/mysqld/mysqld.sock
#port=3306
Наверное, это именно то, что нужно.
Файлы mysqld.sock находится по указанному пути, однако службу всё равно не удается перезапустить, ибо выдаёт всё ту же ошибку "Job for mariadb.service failed because a fatal signal was delivered to the control process".
При написании systemctl status mariadb.service пишет следующее:
mariadb.service: Main process exited,code = killed, status = killed, status = 11/SEGV
mariadb.service: Failed wtih result 'signal'
Failed to start MariaDB 10.3.22 database server.
Решительно не понимаю, почему так произошло, никакие изменения не вносились, неделю назад всё успешно работало, сервер просто стоял во включенном состоянии без какой-либо активности.
В конфигурационном файле MariaDB написано следующее:
socket = /run/mysqld/mysqld.sock
#port=3306
Наверное, это именно то, что нужно.
Да.
При написании systemctl status mariadb.service пишет следующее:
mariadb.service: Main process exited,code = killed, status = killed, status = 11/SEGV
mariadb.service: Failed wtih result 'signal'
Failed to start MariaDB 10.3.22 database server.
SEGV - это прям вообще интересно. Нужно курить логи и реанимировать марию.
Посмотрите:
journalctl -u mariadb
а также в файлах логов марии, и в /var/log/messages