programing

Mysql 암호가 만료되었습니다.접속할 수 없다

javaba 2023. 1. 19. 21:13
반응형

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'뿌리다
그것으로 내 문제가 해결되었다.

mysqladmin -u [username] -p passwordOS 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_lifetimevariable value는 360(1년간)입니다.이러한 버전의 경우 이 변수(또는 개별 사용자 계정)를 변경하지 않으면 모든 비밀번호가 360일 후에 만료됩니다.

따라서 스크립트에서 다음과 같은 메시지가 표시될 수 있습니다. "비밀번호가 만료되었습니다.로그인하려면 만료된 비밀번호를 지원하는 클라이언트를 사용하여 변경해야 합니다."

기한을하려면 , root루트)로서합니다.mysql -u root -p그런 다음 서버에 자동으로 연결하는 클라이언트(스크립트 등)의 경우 암호 만료 설정을 변경합니다.

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

또는 모든 사용자에 대해 자동 비밀번호 유효기간을 비활성화할 수 있습니다.

SET GLOBAL default_password_lifetime = 0;

처럼, , 「Mertaydin」에 합니다.my.cnf 읽기 시 "MySQL" 아래에 [mysqld]「 」의 .my.cnfX에서의 , .또, 유저 마다중 쪽을 에 따라서 다릅니다.

[mysqld]default_password_lifetime = 0은(는)

컨피규레이션파일에 대해서는 MySQL 문서를 참조해 주세요.

최근 macos x capitan에 mysql을 설치할 때도 같은 문제가 발생하였습니다.여기서 정답을 찾지 못했기 때문에 이 답을 추가해 주세요.

현재 버전의 MySql은 mysql 설치 시 임시 비밀번호를 생성합니다.이 비밀번호를 사용하여 다음과 같이 mysqladmin 유틸리티를 사용하여 새 비밀번호를 설정합니다.

/usr/local/vp/bin/vpadmin-u root -p' <your temp password> 비밀번호 '< your new password >'

당신과 다른 사람들에게 도움이 되길 바랍니다.

이 방법은 효과가 있었습니다.

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

MySQL 워크벤치를 다운로드하여 로그인하십시오.패스워드를 즉시 자동 변경하도록 요구됩니다.

Windows의 경우 phpmyadmin 변수: default_password_life time을 검색하여 360이 아닌 0으로 전환합니다.

mySQL이 360일 걸리는 것보다 더 오래 걸리므로 my.ini를 추가합니다.

[mysqld]
default_password_lifetime=0

그리고 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;

경고: 모든 사용자가 로그인할 수 있습니다.

다른 걸 시도해 봐야 했어요루트 패스워드가 만료되어 변경할 수 없었기 때문에

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

추가, " " "skip-grant-tables아래[mysqld]my.cnf하면 trickmysql이됩니다.

이러한 답변은 모두 Linux 콘솔을 사용하여 MySQL에 액세스하는 것입니다.

에서 WAMP 를 는, 콘솔Windows 「WAMP」)을 할 수 .click WAMP icon->MySQL->MySQL console를 참조해 주세요.

그런 다음 현재 비밀번호를 입력하라는 메시지가 나타납니다.

나서, 「이렇게」라고 입력합니다.SET PASSWORD = PASSWORD('some_pass');

--skip-grant-tables 옵션을 사용하여 MySQL 서버를 재시작한 다음 새 루트 암호를 설정합니다.

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

이제 필요한 경우 mysql.user table(field password_expired='N')을 업데이트하여 암호를 만료하지 않도록 할 수 있습니다.

최적의 간단한 솔루션:

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

잘 작동합니다.

이 작업은 다음과 같습니다.

출처 : https://www.diariodeunprogramador.net/fallo-al-conectar-mysql-your-password-expired/

루트로 로그인:

mysql -u root -p

다음으로 모든 사용자의 비밀번호 자동 유효기간을 비활성화합니다.

SET GLOBAL default_password_lifetime = 0;

DBeaver에서 [Edit Connection]-> [ Driver Properties ]-> [ disable disconnect On Expired Passwords ]를 선택합니다.

재접속 및:

실행:

SET PASSWORD FOR 'user-name'@'localhost' = PASSWORD('NEW_USER_PASSWORD');
FLUSH PRIVILEGES;

비밀번호 만료는 MySQL 5.6 또는 5.7의 새로운 기능입니다.

답은 명확합니다.유효기간이 지난 패스워드 변경이 가능한 클라이언트를 사용합니다(Sequel Pro라면 할 수 있을 것 같습니다).

MySQLi 라이브러리는 만료된 암호를 변경할 수 없습니다.

localhost에 대한 액세스가 제한되고 콘솔클라이언트만 있는 경우 표준 mysql 클라이언트가 이를 수행할 수 있습니다.

MySQL 콘솔을 열고 SET PASSWORD = 'your password'를 입력한 다음 ENTER 키를 누르면 사용자 root에 대해 정의된 암호가 설정됩니다.

SET PASSWORD = '만 쓸 수 있습니다. 그러면 루트 사용자의 암호가 공백으로 설정됩니다.

이런 거 했어요.

UPDATE mysql.user SET authentication_string = PASSWORD(''), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';

MySQL 8.0 이상의 경우 이 오류가 발생하면

    *Your password has expired. To log in you must change it using a client that 
    supports expired passwords.*

current user를 사용하여 mysql 단말기를 열고 다음 명령을 사용합니다.

SET PASSWORD ='123456'; To get a new password 123456 for current user;

사용하지 않다SET PASSWORD = PASSWORD('123456');이것은 MySQL 8.0+에서는 더 이상 사용되지 않습니다.

MySQL Workbench를 열고 [Instance] Startup/Shutdown을 선택한 후 start server를 클릭하기만 하면 됩니다.그것은 나에게 효과가 있었다.

언급URL : https://stackoverflow.com/questions/33387879/mysql-password-expired-cant-connect

반응형