Срок действия пароля Mysql истек. Не могу подключиться

Я просто вытер свой Mac и сделал новую установку El Capitan. Я изо всех сил пытаюсь подключиться к Mysql сейчас. Пройдя процесс настройки веб-сервера, я создал простой тестовый файл PHP:

<?php
$conn = new mysqli("127.0.0.1", "root", "xxxxxxxx");
if ($conn->connect_error) echo "Connection failed: " . $conn->connect_error;
else echo "Connected successfully";
phpinfo();
?>

Когда я запускаю его, я получаю эту ошибку:

Warning: mysqli::mysqli(): (HY000/1862): Your password has expired. To log in you must change it using a client that supports expired passwords. in /Users/rich/Documents/DESIGN/test/index.php on line 3
Connection failed: Your password has expired. To log in you must change it using a client that supports expired passwords.

Я никогда не видел этот ответ от связи раньше. Как мне это исправить, если я не могу подключиться?

РЕДАКТИРОВАТЬ

В терминале я ввел команду:

mysql -u root -p

Это попросило меня ввести мой пароль (текущий), который я ввел. Теперь у меня есть доступ к командам mysql, но все, что я пробую, приводит к этой ошибке:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

Как мне сбросить пароль используя ALTER USER?

73

Решение

Так что я наконец нашел решение сам.

Сначала я вошел в терминал и набрал:

mysql -u root -p

Это попросило мой текущий пароль, который я набрал, и это дало мне доступ, чтобы предоставить больше команд mysql. Все, что я пробовал отсюда, дало эту ошибку:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

Это сбивает с толку, потому что я не мог увидеть способ сброса пароля с помощью ALTER USER утверждение, но я нашел другое простое решение:

SET PASSWORD = PASSWORD('xxxxxxxx');

165

Другие решения

Во-первых, я использую:

 mysql -u root -p

Предоставление моего текущего пароля для «root».
Следующий:

mysql> ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password',
`root`@`localhost` PASSWORD EXPIRE NEVER;

+ Изменить 'new_password' на новый пароль для пользователя «root».

Это решило мою проблему.

75

mysqladmin -u [username] -p password работал для меня на OS X El Capitan и MySQL 5.7.12 Community Server. Пример:

$ /usr/local/mysql/bin/mysqladmin -u root -p password
Enter password:
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

Это похоже на ответ Павана Сати, но с запросами пароля.

Моя ошибка была: «# 1862 — Срок действия вашего пароля истек. Чтобы войти в систему, вы должны изменить его с помощью клиента, который поддерживает пароли с истекшим сроком действия». на экране входа в систему phpMyAdmin в первый раз.

44

Срок действия пароля MySQL

Сброс пароля только временно решит проблему. От MySQL 5.7.4 до 5.7.10 (для повышения безопасности — см. MySQL: политика истечения срока действия пароля) по умолчанию default_password_lifetime значение переменной 360 (1 год). Для этих версий, если вы не вносите изменений в эту переменную (или в отдельные учетные записи пользователей) все срок действия паролей истекает через 360 дней.

Таким образом, из скрипта вы можете получить сообщение: «Срок действия вашего пароля истек. Чтобы войти в систему, вы должны изменить его с помощью клиента, который поддерживает пароли с истекшим сроком действия».

Чтобы остановить автоматическое истечение срока действия пароля, войдите в систему как root (mysql -u root -p), то для клиенты, которые автоматически подключаются к серверу (например, скрипты.) изменить настройки срока действия пароля:

ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;

ИЛИ ЖЕ Вы можете отключить автоматическое истечение срока действия пароля для все пользователи:

SET GLOBAL default_password_lifetime = 0;

Как отметил Мертайдин в комментариях, чтобы сделать этот перманент, добавьте следующую строку в my.cnf файл MySQL читает при запуске, под [mysqld] группа настроек. Расположение my.cnf зависит от вашей настройки (например, Windows, или Homebrew на OS X, или от установщика), и от того, хотите ли вы использовать это для каждого пользователя в Unix или в глобальном масштабе:

[ТуздЫ] default_password_lifetime = 0
(Здесь могут быть и другие настройки …)

Увидеть MySQL документы по файлам конфигурации.

14

Недавно я столкнулся с той же проблемой при установке mysql на Mac OS X Capitan.
Я не нашел правильного ответа здесь, поэтому добавляю этот ответ.

MySql в текущих версиях генерирует временный пароль при установке mysql. Используйте этот пароль для установки нового пароля с помощью утилиты mysqladmin, как показано ниже;

/ usr / local / mysql / bin / mysqladmin -u root -p ‘<ваш временный пароль>’ пароль ‘<ваш новый пароль>’

Надеюсь, это поможет вам и другим.

10

Просто загрузите MySQL верстак для входа в систему. Он предложит вам изменить пароль немедленно и автоматически.

7

запустить MYSQL в безопасном режиме

mysqld_safe --skip-grant-tables &

Подключиться к серверу MYSQL

mysql -u root

выполните команды SQL для сброса пароля:

use mysql;
SET GLOBAL default_password_lifetime = 0;
SET PASSWORD = PASSWORD('new_password');

Последний шаг, перезапустите службу MySQL

4

Я столкнулся с этой проблемой несколько дней назад. За лучшее решение для версии 5.7 MySQL; Войдите в консоль MySQL и измените пароль с помощью следующей команды:

ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password', `root`@`localhost` PASSWORD EXPIRE NEVER;
4
По вопросам рекламы [email protected]