Я просто вытер 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.
Это похоже на ответ pavan sachi, но с подсказками с паролями.
Моя ошибка была «# 1862 – Истек ваш пароль. Чтобы войти в систему, вы должны изменить его с помощью клиента, который поддерживает истекшие пароли». на первом экране входа phpMyAdmin.
Сброс пароля временно разрешит проблему. От MySQL 5.7.4 до 5.7.10 (для повышения безопасности – см. MySQL: политика истечения срока действия пароля ) значение переменной по умолчанию default_password_lifetime
равно 360 (1 год-иш). Для этих версий, если вы не вносите никаких изменений в эту переменную (или в отдельные учетные записи пользователей), все пароли истекают через 360 дней.
Поэтому из сценария вы можете получить сообщение: «Срок действия вашего пароля истек. Чтобы войти в систему, вы должны изменить его с помощью клиента, который поддерживает истекшие пароли».
Чтобы остановить автоматическое истечение срока действия пароля, войдите в систему под mysql -u root -p
root ( mysql -u root -p
), затем для клиентов, которые автоматически подключаются к серверу (например, скрипты.), Изменяют настройки срока действия пароля:
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;
ИЛИ вы можете отключить автоматическое истечение срока действия пароля для всех пользователей :
SET GLOBAL default_password_lifetime = 0;
Как отметил Mertaydin в комментариях, чтобы сделать это постоянным, добавьте следующую строку в файл my.cnf
который MySQL читает при запуске, в группе параметров [mysqld]
. Местоположение my.cnf
зависит от вашей установки (например, Windows или Homebrew в OS X или установщика), и хотите ли вы этого пользователя в Unix или глобальном:
[mysqld] default_password_lifetime = 0
(Здесь могут быть и другие настройки …)
См. Документы MySQL в файлах конфигурации .
Недавно я затронул ту же проблему при установке mysql на mac os x capitan. Я не нашел здесь правильного ответа, поэтому добавляю этот ответ.
MySql в текущих версиях генерирует временный пароль при установке mysql. Используйте этот пароль для установки нового пароля с помощью утилиты mysqladmin, как показано ниже;
/ usr / local / mysql / bin / mysqladmin -u root -p '<ваш временный пароль>' пароль '<ваш новый пароль>'
Надеюсь, это поможет вам и другим.
Просто загрузите MySQL workbench для входа в систему. Он предложит вам немедленно и автоматически изменить пароль.
запустить 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;
Истечение срока действия пароля – это новая функция в MySQL 5.6 или 5.7.
Ответ ясен: используйте клиент, способный сменить пароль с истекшим сроком действия (я думаю, Sequel Pro может это сделать).
Библиотека MySQLi, очевидно, не может изменить истекший пароль.
Если у вас ограниченный доступ к локальному хосту, и у вас есть только консольный клиент, стандартный клиент mysql может это сделать.
перезапустите сервер MySQL с параметром -skip-grant-tables. Затем установите новый пароль root
$ mysql -u root mysql> USE mysql; mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit
Теперь, если вам нужно, вы можете обновить таблицу mysql.user (поле password_expired = 'N'), чтобы не истекать срок действия пароля.
Все эти ответы используют Linux-консоли для доступа к MySQL.
Если вы работаете в Windows и используете WAMP, вы можете начать с открытия консоли MySQL ( click WAMP icon->MySQL->MySQL console
).
Затем он попросит вас ввести свой текущий пароль, ввести его.
И затем введите SET PASSWORD = PASSWORD('some_pass');
лучшее простое решение:
[PATH MYSQL]/bin/mysql -u root [Enter password] SET GLOBAL default_password_lifetime = 0;
и затем отлично работает.
Откройте консоль MySQL и введите SET PASSWORD = 'ваш пароль'; и затем нажмите клавишу ENTER, которая установит ваш пароль для пользователя root.
Вы можете писать только SET PASSWORD = ''; который установит пароль как пустой для пользователя root.
Это сработало для меня:
ALTER USER «root» @ «localhost» IDENTIFIED BY 'yourpassword', 'root' @ 'localhost' PASSWORD EXPIRE NEVER;