/
MySQL root password reset 하기
MySQL root password reset 하기
MySQL 관리자 암호를 잃어버려서 root 로 로그인 할 수가 없을때 암호 초기화 하는 방법에 대해서 정리
Linux & Un*x
--init-file 옵션 사용
- mysqld 를 구동할 수 있는 계정(ex: mysql or root) 으로 login 한다.
- MySQL 서버를 중지한다.
Linux
service mysql stop
- Unix
- mysqld 종료 스크립트가 있다면 실행해서 종료한다.
없으면 mysql의 pid 파일을 찾은후에 kill (kill -9 로 종료하면 안 됨!. - 참고 자료) 종료한다. (kill 뒤에 옵션을 안 주면 TERMinate signal 이 전송된다)
kill `cat /var/lib/mysql/host_name.pid`
에디터에서 루트 암호를 초기화하는 SQL 파일을 만들고 /var/lib/mysql/mysql-pwd-init.sql 으로 저장한다.
MySQL 5.7 이상UPDATE mysql.user set authentication_string=PASSWORD("MyNewPass"), password_expired='N', plugin='mysql_native_password' where User='root'; flush privileges;
5.7 부터는 auth plugin 이 도입되어 auth_socket 일 경우 암호를 설정해서 로그인에 실패함
MySQL 5.7 미만UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
mysqld 를 --init-file 옵션과 함께 구동한다.
a. Linux
mysqld_safe --init-file=/var/lib/mysql/mysql-pwd-init.sql
b. Unix
mysqld_safe --init-file=/var/lib/mysql/mysql-pwd-init.sql &
- 잘 반영되었는지 확인하기 위해 mysql cient 로 login 해 보고 제대로 로그인 되면 /var/lib/mysql/mysql-pwd-init.sql 는 삭제한다.
mysql 서비스를 재구동한다.
service mysqld restart
--skip-grant-tables 사용
privilege 를 확인하지 않는 옵션인 --skip-grant-tables 옵션을 통해 mysql 구동한후 암호를 변경한다.
에러 처리
아래와 같은 에러가 날 경우 my.cnf 에 user = mysql 을 설정한다.
- mysql 구동
Linux
service mysql start --skip-grant-tables
Unix
mysqld_safe --skip-grant-tables
- mysql 콘솔로 연결한다.
mysql -u root mysql
"--init-file 옵션 사용" 항목의 3번 루트 암호를 초기화하는 SQL을 수행한다.
mysql 재구동
service mysql restart
Windows
- 시작 -> cmd 에서 services.msc 입력하거나 제어판 -> 관리도구 -> 서비스
- MySQL server 중지
에디터에 Case1항의 3번 암호를 초기화하는 SQL 을 입력하고 c:\init.sql 로 저장
시작 -> 실행에서 다음 명령어 입력 (MySQL 설치경로 따라 다를수 있음)
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini" --init-file=c:\\init.sql
- 잘 반영되었는지 확인하기 위해 mysql cient 로 login 해 보고 제대로 로그인 되면 c:\init.sql는 삭제한다.
Ref
, multiple selections available,
Related content
WSL 2 Ubuntu 20 에 MySQL 8 설치
WSL 2 Ubuntu 20 에 MySQL 8 설치
More like this
MySQL ERROR 1698 (28000): 에러 해결
MySQL ERROR 1698 (28000): 에러 해결
More like this
RHEL/CentOS 에 MySQL 8 설치하기
RHEL/CentOS 에 MySQL 8 설치하기
More like this
CentOS 8/RHEL 8 루트 암호를 잊어버렸을 때 복구하기(Reset root password in CentOS 8)
CentOS 8/RHEL 8 루트 암호를 잊어버렸을 때 복구하기(Reset root password in CentOS 8)
More like this
Confluence 수작업으로 관리자 계정/암호 복구하기(restore admin password)
Confluence 수작업으로 관리자 계정/암호 복구하기(restore admin password)
More like this
MySQL [2054] 에러 해결 - MySQL 8 인증 정책(Authentication policy) 수정하기
MySQL [2054] 에러 해결 - MySQL 8 인증 정책(Authentication policy) 수정하기
More like this