Не может соединиться с локальным сервером MySQL через сокет '/var/lib/mysql/mysql.sock' (111)

Я разработал веб-сайт на платформе Silverstripe и развернул это на цифровом океанском сервере с помощью песней (7.0.1406), mariadb (10.0.14) и апача (2.4.6). Я - своего рода новичок когда дело доходит до системного администратора так настраивает инструкции по следующему сервера в цифровых океанских общественных документах (https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-7).

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

[Предупреждение] mysqli:: mysqli (): (HY000/2002): не Может соединиться с локальным сервером MySQL через сокет '/var/lib/mysql/mysql.sock' (111)

На

$this->dbConn = new MySQLi($parameters['server'], $parameters['username'], $parameters['password']);

Когда это происходит, я перезагружаю сервер (с 'перезагрузкой'), проблема уходит. Это только, кажется, происходит при действии, происходит в CMS. Мой клиент испытал его неоднократно при попытке загрузить изображения, и я только что видел его впервые при переключении страниц в CMS.

Никакой объем использования на фронтэнде веб-сайта не вызывает проблемы (до сих пор, по крайней мере). Что могло вызывать эту проблему? Есть ли какие-либо действия, которые могут быть выполнены веб-сайтом (PHP), который мог инициировать этот отказ? Злоупотребление системой снабжает/подвешивает взлеты где-нибудь/тайм-ауты? Где я могу запустить свой процесс отладки?

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

0
задан 27 November 2014 в 12:05
5 ответов

Привет, @AveryPayne. Спасибо, что нашли время, чтобы прочитать сообщение. $ paramaters ['server'] - это 'localhost'. Ура, Фрейзер

Краткая версия: «Отсюда вы не можете добраться».

На основании этого комментария и сообщения об ошибке я бы сказал , что у вас проблема с типом подключения. Сокет в сообщении об ошибке указан как /var/lib/mysql/mysql.sock , но вы пытаетесь подключиться к сети через localhost, который соответствует сетевому адресу 127.0.0.1. Похоже, ваша программа не использует правильный параметр во время выполнения. Дважды проверьте, действительно ли параметр является 'localhost' во время выполнения , запрограммировав его где-нибудь в журнале / записи параметра, и дважды проверьте, что MySQL подключен к сетевому порту 3306, а не к файловому сокету в /var/lib/mysql/mysql.sock .

Либо измените параметр для программы и MySQL, чтобы вместо этого использовать файловый сокет. Все, что работает проще всего.

1
ответ дан 4 December 2019 в 11:49

111 означает, что в соединении отказано. То есть, этот сокет ничего не прослушивает.

Это означает, что MariaDB не запущен, или был настроен на прослушивание какого-либо другого сокета (или вообще не прослушивал).

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

2
ответ дан 4 December 2019 в 11:49

Первым шагом будет просмотр файла журнала Mariadb, который обычно находится в / var / lib / mysql и называется * .err.

Вы также можете проверить, что Mariadb является все еще работает на сервере, когда вы получаете это сообщение об ошибке, и вы можете проверить, можете ли вы войти в систему (в случае, если он работает).

0
ответ дан 4 December 2019 в 11:49

У меня была та же проблема, и я узнал кое-что, покопавшись. MariaDB - это прямая замена mysql. В новой системе mysql является клиентом MariaDB (хотя я не понимаю, что это значит). Проверка, была ли запущена служба:

service mysqld status

, в которой указано:

Перенаправление в / bin / systemctl status mysqld.service

mysqld.service

Загружено: не найдено (Причина: нет такого файла или каталога )

Активен: неактивен (мертв)

Другими словами, служба mysqld не запущена.

Запуск сервиса у меня сработал:
systemctl start mariadb.service

Теперь все команды mysql работают должным образом.

Чтобы завязать последний узел, включите сервис при загрузке:
systemctl enable mariadb.service
1
ответ дан 4 December 2019 в 11:49

Привет, проверьте, заполнен ли ваш диск в установочном разделе. И если хранилище существует, управляйте журналами на сервере Mariadb, добавляя следующие строки в my.conf

expire_logs_days = 10 #this is for managing the log days
max_binlog_size = 100M #this is for managing the log size

Переместите журналы в каталог и перезапустите сервер mariadb.

0
ответ дан 4 December 2019 в 11:49

Теги

Похожие вопросы