Mac에 설치 한 후 ALTER USER 문을 사용하여 MySQL 루트 비밀번호 재설정


184

나는 전체 Mac 경험을 처음 사용합니다. 최근에 MySQL을 설치했으며 설치 후 비밀번호를 재설정해야합니다. 다른 일을 할 수 없습니다.

이제 평소와 같이 비밀번호를 재설정했습니다.

update user set password = password('XXX') where user = root;

(BTW : 기괴한 이유로 MySQL을 해결하기 위해 나이가 들었습니다 .'password '필드의 이름을'authentication_string '으로 바꿨습니다.

불행히도 암호를 다른 방법으로 변경 해야하는 것으로 보입니다. 여기 누군가가 이미 그 문제를 겪었 을까요?

답변:


508

이 경우 NOT 당신의 처음 암호를 설정,이 방법을 시도 :

mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
           WHERE User='root'; 

그리고 다음과 같은 오류가 발생하면 이전에 비밀번호를 설정하지 않았을 가능성이 높습니다.

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

에 대한 암호를 설정하려면 처음 :

mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)

참조 : https://dev.mysql.com/doc/refman/5.6/en/alter-user.html


10
감사! 그래도 MySQL의 매우 혼란스러운 오류 메시지!
Ed.

1
이것은 나를 위해 일했다 mysql-5.7.13-osx10.11-x86_64
GiriB

1
'mysql> SET PASSWORD = PASSWORD ('your_new_password ');'후에 다음과 같은 오류가 발생합니다. 'ERROR 29 (HY000) : File'./mysql/user.MYD 'not found (Errcode : 2-No such 파일 또는 디렉토리) '. 누군가 나를 도울 수 있습니까?
Ray Kim

4
MySQL이 제안한 것에 반하여, "ALTER USER"문을 사용하지 않고 "SET PASSWORD"만 사용하십시오.
Fabien Haddadi

1
첫 번째 예는 잠재적으로 해당 회선을 제출할 때 사용중인 것과 다른 사용자의 비밀번호를 설정하려고 시도합니다. 두 번째는 mysql에 로그인 할 때 사용한 사용자의 비밀번호를 설정하려고합니다. 따라서 나중에 작동합니다.
Hafenkranich

130

사용하여 mysql을 시작한 경우 mysql -u root -p

시험 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

출처 : http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


1
감사합니다! 이것은 나를 위해 일했다! mysql-5.7.11-osx10.10-x86_64 사용하고 있습니다.
LeArNr

이것은 효과가 있었다. 감사! MySQL이 널리 사용되는 프로그램이지만 설치 및 빠른 실행을위한 원 스톱 설명서가 없다는 것은 매우 슬픈 일입니다.
Shatu

감사 ! 도움이되었습니다
Sparw

3
많은 좌절 후, 이것의 변형은 민트 18 mysql 5.7.18에서 작동했습니다.ALTER USER 'root'@'localhost' indentified WITH mysql_native_password BY 'password';
Steve

백만 감사합니다. 그것이 나를 위해 일한 유일한 것입니다.
랜디 My

33

Mac에서도 같은 문제가 있습니다

먼저 샌드 박스 모드로 mysql에 로그인하십시오.

mysql -u <user> -p --connect-expired-password

그런 다음 비밀번호를 설정하십시오.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXXX');

Query OK, 0 rows affected, 1 warning (0.01 sec)

그것은 나를 위해 작동 ~

경유 : /dba/118852/your-paswssword-has-expired-after-restart-mysql-when-updated-mysql-5-7-8-rcde


1
데이터베이스를 전혀 사용하지 않더라도이 작업을 수행해야한다는 점을 명심해야합니다.
seba.wagner 1

경고에서 당신이 사용하기를 원합니다SET PASSWORD FOR 'root'@'localhost' = 'XXXX';
Arsen Zahray

22

MySQL 5.7.6 이상을 사용하는 경우 :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 이하를 사용하는 경우 :

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

MySQL 문서


1
MySQL 5.7.9를 사용하고 있으며 이상한 일이 SET PASSWORD = PASSWORD('my_pass')저에게 효과적 입니다. 이 진술이 그들에게도 효과가 있다고 언급 한 최신 버전의 사람들에 대한 의견이 있습니다. 그럼에도 불구하고, 앞서 언급 한 사람이없는 MySQL 문서 에서이 특정 참조를 찾았으므로 귀하의 답변을 찬성했습니다.
Armfoot

MySQL 8 SET PASSWORD 가 발생하여 오류가 발생했습니다. ALTER USER가 일했습니다.
Timar Ivo Batis

13

MySQL 5.7.x에서는 다음과 같이 비밀번호를 변경할 수 있도록 기본 비밀번호로 전환해야합니다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

11

다음을 실행하십시오.

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

그런 다음 실행

./mysql -u root

로그인해야합니다. 이제 FLUSH 권한을 실행하십시오.

그런 다음 MySQL 콘솔을 종료하고 로그인을 시도하십시오. 그래도 작동하지 않으면 다음을 실행하십시오.

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

xxxxxx를 새 비밀번호로 변경하십시오. 그런 다음 다시 로그인하십시오.

최신 정보. 이것 좀 봐 참조하십시오 http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

문제를 해결해야합니다.

오라클에 있다면 이것을 시도하십시오

ALTER USER username IDENTIFIED BY password

아니요, 죄송합니다. 작동하지 않습니다. 적어도 더 이상은 아닙니다. '암호'열의 이름이 Oracle에서 btw로 바뀌 었습니다. 이제 authentication_string이라고합니다. 그러나 먼저 ALTER USER 명령을 사용하여 비밀번호를 변경해야하므로이 명령을 실행할 수 없습니다. 이것은 전통적으로 암호를 업데이트하는 방식이 아니기 때문에 매우 실망 스럽습니다. 테이블의 항목을 변경하지 않고 테이블, 함수 및 항목에 대해 ALTER를 예약해야합니다. 이것이 Update 문입니다. (죄송합니다)
dengar81

@Shivan Paw : 다음 두 가지 경고가 예상됩니다. mysqladmin : [경고] 명령 줄 인터페이스에서 암호를 사용하면 안전하지 않을 수 있습니다. 경고 : 비밀번호는 일반 텍스트로 서버에 전송되므로 비밀번호 연결을 위해 SSL 연결을 사용하십시오. -비밀번호가 업데이트 된 것으로 간주합니다. 실제로 새 비밀번호로 로그온 할 수 있습니다. 그러나 ALTER USER 명령을 사용하여 비밀번호를 업데이트해야하므로 여전히 쿼리를 실행할 수 없습니다. (.
dengar81

@Shivan Paw : 무엇을 시도 하시겠습니까? 이미 제안한 명령을 사용해 보았습니다. ./mysqladmin 명령 (이 경고)를 사용하여 암호를 재설정 한 후 mysql 데이터베이스에서 user에 업데이트를 실행하기 위해 진행 ... 두 번째 명령은 "당신은 ALTER 사용자 [...]를 사용하여 비밀번호를 재설정해야합니다"라는 메시지와 함께 실패합니다
dengar81

이것은 나를 위해 일한 유일한 솔루션입니다. 최신 버전의 mysql에서 만료 된 암호가 있으면 ALTER_USER 또는 SET_PASSWORD를 허용하지 않습니다.
Aaron Henderson

7

어쩌면 그것을 시도?

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');

또는

SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');

사용하는 액세스 권한에 따라 다릅니다.

(그리고 자신을 필드 이름으로 변경 해야하는지 확실하지 않습니다 ...)

https://dev.mysql.com/doc/refman/5.0/en/set-password.html


죄송합니다. 작동하지 않습니다. ERROR 1820 (HY000) :이 명령문을 실행하기 전에 ALTER USER 문을 사용하여 비밀번호를 재설정해야합니다.
dengar81


7

업데이트 사용자 SET authentication_string = PASSWORD ( "MyPassWord") WHERE User = 'root'; 오류 1064 (42000) : SQL 구문에 오류가 있습니다. 1 행의 '( "MyPassWord") WHERE User ='root ''근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오.

로 해결

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

아래 사이트에서 참조

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


5

Ver 14.14 Distrib 5.7.19, for macos10.12 (x86_64): 나는로 로그인 mysql -uroot -p당신이 그것을 설치할 때 다음의 MySQL에 의해 생성 된 암호를 입력했습니다. 그때..

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

예:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye $ mysql -uroot -p

'Ab1234'를 입력해도됩니다


3

MySQL 5.7.24는 루트 최초 로그인을 얻습니다

1 단계 : 로그에서 비밀번호 얻기

 grep root@localhost /var/log/mysqld.log
    Output
        2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w

2 단계 : mysql에 그와 로그인

mysql -uroot -p'wHkJHUxeR4)w'

3 단계 : 새 루트 비밀번호를 입력합니다

SET PASSWORD = PASSWORD('xxxxx');

당신은 얻을 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

어떻게 고쳐?

이것을 실행 SET GLOBAL validate_password_policy=LOW;

다시 시도하십시오 SET PASSWORD = PASSWORD('xxxxx');



2

여기 나를위한 방법이 있습니다.

MySQL> show databases ;

오류 1820 (HY000) :이 명령문을 실행하기 전에 ALTER USER 문을 사용하여 비밀번호를 재설정해야합니다.

MySQL> uninstall plugin validate_password;

오류 1820 (HY000) :이 명령문을 실행하기 전에 ALTER USER 문을 사용하여 비밀번호를 재설정해야합니다.

MySQL> alter user 'root'@'localhost' identified by 'root';

쿼리 OK, 영향을받는 0 개의 행 (0.01 초)

MySQL> flush privileges;

쿼리 OK, 영향을받는 0 개의 행 (0.03 초)


1

사용 SET PASSWORD = PASSWORD('your_new_password');하면 충돌이 발생할 수 있습니다

(오류 1819 (HY000) : 암호가 현재 정책 요구 사항을 충족하지 않습니다)

SET GLOBAL validate_password_policy=LOW;그것을 사용 하기 위해 사용할 수 있습니다 .


1

5.7 버전에서. '비밀번호'필드가 삭제되었습니다. 'authentication_string'으로 교체

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;

0

또한 Mac OS X 10.10.4 (Yosemite)에서 동일한 문제가 발생했습니다. 패스워드가 작동합니다 .mysql-mysql의 비밀번호 변경> 비밀번호 설정 = 비밀번호 ( 'your_password'); 쿼리 OK, 영향을받는 행 0 개, 경고 1 개 (0.01 초)

.bash_profile에서 Mysql 환경 경로 변수를 설정하고 아래 행
export PATH = $ PATH : / usr / local / mysql / bin을 추가 한 후 다음 명령을 실행하십시오.


0

mysql workbench 및 mysql community server를 설치 한 후 문제가 발생했습니다. 서버 설치 중에 생성 된 비밀번호가 있습니다. 워크 벤치에서 기존 로컬 인스턴스를 두 번 클릭하면 새 비밀번호를 설정할 수있는 대화 상자가 트리거되었습니다.


0

mysql> SET PASSWORD = PASSWORD('your_new_password'); 그것은 나를 위해 작동합니다.


0

버전 5.7.23 이상을 기억하십시오-사용자 테이블에는 인증 문자열 대신 열 비밀번호가 없으므로 아래는 사용자의 비밀번호를 재설정하는 동안 작동합니다.

update user set authentication_string=password('root') where user='root';
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.