[리눅스] MySQL root 관리자 비밀번호 변경
- Linux 리눅스(우분투)에서 mysql 비밀번호(비번) root admin 패스워드(password) 바꾸는 방법
- mysql 암호 변경 방법
- mysql 서버 중지
sudo service mysql stop
sudo killall mysqld
sudo ps -aux | grep mysql
//-------------------------------------
< skip-grant-tables 옵션으로 변경하는 방법 >
- /etc/mysql/my.cnf 파일수정
[mysqld]
skip-grant-tables # <== 추가, (주의! 보안 위험하므로 나중에 꼭 없애야 함)
- 서버 시작
$ sudo service mysql start
- mysql console에 root로 접속
$ mysql -u root
- 비밀번호 변경
> FLUSH PRIVILEGES;
- 참고! 이 명령을 먼저 하지 않으면 다음 에러 발생
RROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
> FLUSH PRIVILEGES;
> exit
- (설정복원) /etc/mysql/my.cnf 파일수정 , skip-grant-tables 설정 삭제
[mysqld]
#skip-grant-tables # <== 삭제, (보안 위험하므로 꼭 없애야 함)
- mysql 서버 재시작
$ sudo service mysql restart
//-------------------------------------
< 참고 >
* 일반 사용자 비밀번호 변경 방법
- root 계정으로 접속
$ mysql -u root -h localhost -p
- 사용자 비밀번호 변경 명령
> ALTER USER '사용자ID'@'localhost' IDENTIFIED BY '새비밀번호';
- 주의! 'localhost' 는 등록된 정보와 일치해야 한다. '%' 나 'IP'일수도 있음
> FLUSH PRIVILEGES;
//-----------------------------------------------------------------------------
< 참고 만 >
< 초기화 파일로 변경하는 방법 >
- 윈도우에서는 정상 작동했는데 나의 경우는 리눅스에서 에러 발생,(작업 실패)
- 파일 작성 ex) /home/me/mysql-init
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
- 작성한 파일로 mysql 시작
sudo mysqld --init-file=/home/me/mysql-init
//-------------------------------------
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html