Подтвердить что ты не робот

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

Как использовать reset пароль с помощью ALTER USER?

4b9b3361

Ответ 1

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

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

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');

Ответ 2

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

 mysql -u root -p

Предоставление моего текущего пароля для "root". Далее:

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

Измените 'new_password' на новый пароль для пользователя root.
Он решил мою проблему.

Ответ 3

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.

Ответ 4

Срок действия пароля 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 или установщика) и от того, хотите ли вы это для -u ser в Unix или в глобальном масштабе:

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

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

Ответ 5

Недавно я просмотрел ту же проблему при установке mysql на mac os x capitan. Я не нашел здесь правильного ответа, поэтому добавив этот ответ.

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

/usr/local/mysql/bin/mysqladmin -u root -p '< your temp password > ' пароль '< ваш новый пароль > '

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

Ответ 6

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

Ответ 7

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

mysqld_safe --skip-grant-tables &

Подключение к серверу MYSQL

mysql -u root

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

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

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

Ответ 8

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

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

Ответ 9

ВНИМАНИЕ: это позволит любому пользователю войти

Я должен был попробовать что-то еще. Так как мой пароль root истек, и изменение не было вариантом, потому что

Column count of mysql.user is wrong. Expected 45, found 46. The table is probably corrupted

временно добавив skip-grant-tables под [mysqld] в my.cnf и перезапустив mysql, добился цели

Ответ 10

Это сработало для меня:

ALTER USER 'root' @'localhost' IDENTIFIED BY 'yourpassword', 'root' @'localhost' PASSWORD EXPIRE NEVER;

Ответ 11

Истечение срока действия пароля - это новая функция в MySQL 5.6 или 5.7.

Ответ ясен: используйте клиент, способный сменить пароль с истекшим сроком действия (я думаю, Sequel Pro может это сделать).

Библиотека MySQLi, очевидно, не может изменить истекший пароль.

Если у вас ограниченный доступ к локальному хосту, и у вас есть только консольный клиент, стандартный клиент mysql может это сделать.

Ответ 12

Все эти ответы используют Linux-консоли для доступа к MySQL.

Если вы используете Windows и используете WAMP, вы можете начать с открытия консоли MySQL (click WAMP icon->MySQL->MySQL console).

Затем он попросит вас ввести ваш текущий пароль, ввести его.

И затем введите SET PASSWORD = PASSWORD('some_pass');

Ответ 13

лучшее решение:

[PATH MYSQL]/bin/mysql -u root
[Enter password]
SET GLOBAL default_password_lifetime = 0;

а затем отлично работает.

Ответ 14

На Windows в phpmyadmin посмотрите в Variables: default_password_lifetime и переключите его на 0 (вместо 360), наслаждайтесь.

Возможно, MySQL снова займет 360 дней, поэтому добавьте в my.ini:

[mysqld]
default_password_lifetime=0

И перезапустите MySQL.

Ответ 15

перезапустить сервер 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'), чтобы не истекать срок действия пароля.

Ответ 16

Откройте консоль MySQL и введите SET PASSWORD = 'ваш пароль'; а затем нажмите клавишу ENTER, которая установит ваш пароль для пользователя root.

Вы можете писать только SET PASSWORD = ''; который установит пароль как пустой для пользователя root.

Ответ 17

Эта работа для меня:

Источник: https://www.diariodeunprogramador.net/fallo-al-conectar-mysql-your-password-expired/

Войдите в систему как root:

mysql -u root -p

и затем вы отключите автоматическое истечение срока действия паролей всех пользователей:

SET GLOBAL default_password_lifetime = 0;