Не удается подключиться к MySQL через CLI или phpMyAdmin, но WordPress по-прежнему подключается нормально

1113 Это первый раз, когда мне пришлось обратиться с вопросом - я действительно в замешательстве.

Я установил mysql на Linux-сервере (Ubuntu) и этим утром попытался войти в phpMyAdmin. Я получил сообщение об ошибке «Я не могу войти в систему». Поэтому я пошел в командную строку, набрал mysql -u root -p и, когда мне предложили ввести пароль, ввел его правильно. Затем я получил следующую ошибку:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Вот странная вещь:

Я не могу подключиться через mysql в командной строке или через phpMyAdmin, но все мои сайты WordPress работают нормально , Однако, если я пытаюсь войти с одним из учетных данных сайтов WP, я получаю ту же ошибку, что и выше.

Я проверил etc/mysql/my.cnf и увидел: bind-address = 127.0.0.1. Я попытался закомментировать это и перезапустить MySQL, не повезло. Я попытался изменить bind-адрес на localhost, но все равно не повезло. Прямо сейчас это вернулось к bind-address = 127.0.0.1. Это тот же параметр, который у меня есть для второго Linode с такими же частными настройками IP / сети, что и этот (я установил оба их статических IP-адреса одновременно), но другой сервер работает нормально (может подключиться к MySQL). ) и этот, кажется, просто ненавидит меня.

Таким образом, большой вопрос заключается в следующем: Что является причиной того, что mysql больше не позволяет мне подключаться, почему мои сайты WordPress все еще могут использовать свои учетные данные (но я не могу использовать phpmyadmin или командную строку), и как я могу предотвратить это от меня в будущем?

Возможные подробности:

  • Два дня назад я установил частный IP-адрес для этого линода.

  • cat /etc/hosts содержит localhost

    127.0.0.1 localhost.localdomain localhost

  • ping localhost возвращает результаты:

    ping localhost
    PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
    64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.066 ms
    64 bytes from localhost.localdomain (127.0.0.1): icmp_req=2 ttl=64 time=0.062 ms
    
  • Недавно перезагрузили компьютер впервые за два месяца. Может ли это быть как-то связано с этим?

  • Кажется, что пароль пользователя root автоматически менялся ...

Большое спасибо за помощь.

0
задан 04.05.2020, 23:54

1 ответ

Я столкнулся с чем-то похожим на это, когда настраивал mysql. MySQL не считает localhost и 127.0.0.1 одним и тем же доступным адресом (несмотря на то, что документы часто используют их взаимозаменяемо). Хитрость заключается в том, чтобы в вашем случае подключиться, чтобы внести изменения в то, кто может подключиться и как. Я бы попытался подключиться к IP-адресу обратной петли в явном виде:

mysql -h 127.0.0.1 -u root -p

Если это не сработает, вам придется покопаться в ваших настройках WordPress, чтобы найти настройки хоста, порта, имени пользователя и пароля. Хорошей новостью является то, что если WordPress работает, есть способ войти.

Как только вы подключитесь, ваша проблема находится в базе данных mysql (use mysql) в таблице пользователей. Либо контроль доступа разрешает только один из 127.0.0.1 / localhost / внешний IP, либо анонимных пользователей , которые портят ваши соединения.

Чтобы узнать, есть ли у вас анонимные пользователи:

SELECT User,host from mysql.user;

Если вы видите что-нибудь с пустым @ localhost и т. Д., Это они. Удалить:

DELETE From mysql.user where User='' and host='localhost';
FLUSH PRIVILEGES;
0
ответ дан 04.05.2020, 23:54
  • 1
    Таким образом, Вы думаете, что некоторые, как пароль root был поврежден во время обновления? That' s вызывающий беспокойство, если it' s риск. – abarisone 04.05.2020, 23:54
  • 2
    Это - очень применимый ответ на множество проблем, но в моем случае это не было. Результаты ping исключили 127.0.0.l проблема, которая очень распространена (и я думаю, что Вы обращались здесь). Я закончил тем, что имел необходимость закрыть mysql, и затем запускаться он создает резервную копию с таблицами предоставления пропуска, тогда в основном сделал то, относительно чего Вы сказали из абзаца 2. Как оказалось, единственной вещью, о которой я могу думать, который уничтожил mysql пароль root, была системная перезагрузка. о, хорошо. I' m отмечающий этот ответ как корректный, потому что это - то, которое соответствует самому широкому множеству обстоятельств. Спасибо за то, что заняли время для ответа! – gerardnll 04.05.2020, 23:55
  • 3
    Я проверил и перепроверил все свои журналы (я журналирую все, что я делаю просто поэтому), и перезапуск после того, как apt-get upgrade была последняя большая вещь, которую я сделал. После этого это было всего [приблизительно 111] и grep вызовы. – tgdn 04.05.2020, 23:55

Теги

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