Истекает пароль 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 ?

    Поэтому я, наконец, нашел решение самостоятельно.

    Во-первых, я вошел в терминал и набрал:

    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

    Сброс пароля временно разрешит проблему. От 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;