#Ошибкиустановкисоединениясбазойданных #ошибкиповторногоподключениякбазеданных #Connectionrefused #настройкаvpsсервера #mysql
На готовом новом VPS сервере с Ubuntu 16.04 установлено MySQL 5.7.27, PHP 7.0.33, Apache 2.4.18.
Обновили все пакеты, добавили домены, базы данных, захожу на сайты — всё работает.
Пробую внести изменения любые — не редактируются, возникают ошибки:
- Ошибки установки соединения с базой данных
- Ошибка повторного подключения к базе данных
Опишу, что я делал, на каком-то шаге у вас может решиться проблема:
Неверные логин, пароль, имя базы
Сразу не мой вариант, но проверьте содержимое wp-config.php и сравните с сервером.
Восстановление работы базы данных
- В wp-config.php добавляем строчку
define('WP_ALLOW_REPAIR', true);
- Переходим на Ваш_сайт/wp-admin/maint/repair.php
- Жмём починить базу
Тоже делал, но мне не помогло.
Правим wpconfig
Сразу добавляем строку для отображения ошибок (это нужно было сделать первым пунктом):
define( 'WP_DEBUG', true );
Некоторым помогало изменение имени сервера в
define('DB_HOST', 'localhost');
на 127.0.0.1. Мне это не помогло. Теперь самое интересное.
Даём полные права пользователю на базу
Заметил, что в phpMyAdmin не могу попасть под root и периодически в настройки mySQL на сервере, возникает ошибка доступа.
Сбрасываем пароли, на mySQL 5.2.7 немного отличается команда от предыдущих версий, заходим под ним в phpMyAdmin и добавляем все привилегии, можно также командой:
GRANT ALL PRIVILEGES ON * . * TO 'non-root'@'localhost';
Можно редактировать привилегии, в том числе возможность подключения с любого хоста %.
Для того, чтоб изменения вошли в силу обновляем:
FLUSH PRIVILEGES;
Добавляем пользователя в config.inc.php
Идём в /etc/phpmyadmin, открываем конфигурационный файл и в нём добавляем в секцию /* Authentication type */:
$cfg['Servers'][$i]['user'] = 'root'; //тут логин пользователя MySQL
$cfg['Servers'][$i]['password'] = 'pass'; // тут должен быть пароль пользователя, который может быть пустым
$cfg['Servers'][$i]['auth_type'] = 'config'; (поставил вместо cookie)
У меня этих строк не было. Перегрузил службы MySQL и Apache, мне это помогло, я мог править сайт, всё было хорошо, но после перезагрузки появилась ошибка ниже:
Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /var/www/…wp-db.php on line 1612
В /usr/local/mgr5/etc/ispmgr.conf.d/db.conf правим данные подключения, указываем сервер с портом
$serverName = "127.0.0.1:3306";
Перегружаем службы.
Access denied for user ‘root’@’localhost’ (using password: NO) и Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /var/…wp-includes/wp-db.php on line 1612
Идём в php.ini (если несколько версий, то по пути /etc/php/7.0/apache2) и добавляем
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock
Возможно не заработает и достаточно будет значений по умолчанию, тогда поставьте вашего пользователя базы данных в
mysqli.default_user = root
Перегружайте apache.