Я просто вытер свой 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
?
Так что я наконец нашел решение сам.
Сначала я вошел в терминал и набрал:
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');
Во-первых, я использую:
mysql -u root -p
Предоставление моего текущего пароля для «root».
Следующий:
mysql> ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password',
`root`@`localhost` PASSWORD EXPIRE NEVER;
+ Изменить 'new_password'
на новый пароль для пользователя «root».
Это решило мою проблему.
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 в первый раз.
Сброс пароля только временно решит проблему. От 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 на Mac OS X Capitan.
Я не нашел правильного ответа здесь, поэтому добавляю этот ответ.
MySql в текущих версиях генерирует временный пароль при установке mysql. Используйте этот пароль для установки нового пароля с помощью утилиты mysqladmin, как показано ниже;
/ usr / local / mysql / bin / mysqladmin -u root -p ‘<ваш временный пароль>’ пароль ‘<ваш новый пароль>’
Надеюсь, это поможет вам и другим.
Просто загрузите MySQL верстак для входа в систему. Он предложит вам изменить пароль немедленно и автоматически.
запустить 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
Я столкнулся с этой проблемой несколько дней назад. За лучшее решение для версии 5.7 MySQL; Войдите в консоль MySQL и измените пароль с помощью следующей команды:
ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password', `root`@`localhost` PASSWORD EXPIRE NEVER;