mysql 루트 비밀번호를 다시 비어있는 상태로 변경하는 방법


43

로컬에서 작업 할 때 데이터베이스에 액세스하기 위해 비밀번호를 입력 할 필요가 없습니다. mysql을 처음 설치할 때 루트 비밀번호를 변경했지만 비밀번호를 다시 변경하는 방법을 모르겠습니다. 어떻게해야합니까?

답변:


43

루트 비밀번호를 newpassword다음으로 변경하려면

 mysqladmin -u root -p'oldpassword' password 'newpassword'

root가 비밀번호를 요구하지 않도록 변경하려면 :

 mysqladmin -u root -p'oldpassword' password ''

참고 : 나는 사이에 공백이없는 것을 중요 생각 -p하고 'oldpassword'하지만 난 그것에 대해 잘못 될 수는


3
오류가 계속 발생합니다 : 'root'@ localhost에 대한 액세스가 거부되었습니다. 이 문제를 어떻게 해결할 수 있습니까?
tq

나를 위해 작동합니다 : mysqladmin -u root -p'oldpassword 'password' '@tq : 당신은 정확히 oldpassword를 입력해야합니다
Bảo Nam

15

암호를 제거하지 않고 (해당 서버에 문제가 생길 경우 불쾌한 결과를 초래할 수 있음) 현재 암호 (및 사용자 이름)를 ~/.my.cnf다음과 같은 위치 (또는 Windows의 동등한 위치 )에 넣으십시오 .

[client]
user = root
password = s3kr1t

이렇게하면 향후에 불쾌감을주지 않으면 서 MySQL에 제공된 자격 증명을 사용하여 자동 로그인 할 수 있습니다.


7
  1. mysqld를 중지하고 --skip-grant-tables 옵션으로 다시 시작하십시오 .
  2. mysql 만 사용하여 연결하십시오 .
  3. 루트 비밀번호를 변경하십시오.

    mysql.user 업데이트 SET Password = PASSWORD ( 'MyNewPass') WHERE User = 'root';

    홍당무;

참조 : 공식 mysql docs .


1
이것은 작동하지만 그것을 수행하는 무차별 강제 방법입니다. 비밀번호를 모르는 경우에 유용합니다.
David

6

MySQL 5.7부터 validate_password 플러그인은 기본적으로 활성화되어 있으며 빈 비밀번호를 사용하지 못하게합니다.

빈 비밀번호를 허용하려면이 플러그인을 비활성화해야합니다.

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

보안에 신경 쓰지 않는 한 @womble의 조언을 따르고 .my.cnf편의를 위해 파일 과 함께 암호를 사용해야 합니다.

이 기사 에서 MySQL 루트 암호 제거 기사를 확인하십시오 !


버전 5.6 이상인 경우 이것이 작동하는 유일한 방법입니다. 이전 버전에서도 작동해야한다고 생각합니다.
Diego

1

최신 버전에서

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

그리고 이것은 암호를 제거합니다

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