[MySQL,MariaDB] root 비밀번호 분실시 변경하기
우선 필자는 윈도우 환경에서 설치한 mariadb 5.5 버전을 기준으로 설명한다.
1. 서비스 환경에서 mariadb 를 중지한다.
혹은, 작업관리자 내 백그라운드 프로세서중에 mysqld.d 가 실행중인지 확인하고 실행중이면 끝내기한다.
2. cmd 창을 띄우고, mysqld.exe --skip-grant
3. 또다시 다른 cmd 창을 띄우고, mysql.exe 를 실행한다.
mysql> use mysql;
mysql> update user set password=password('새비번') where user='root';
mysql> flush privileges;
mysql> quit;
MariaDB [mysql]> set password for root@'localhost' = PASSWORD('1111');
Query OK, 0 rows affected (0.015 sec)
MariaDB [mysql]> flush privileges ;
Query OK, 0 rows affected (0.002 sec)
MariaDB [mysql]> quit
4. mariadb 서버를 재시작한다.
/bin/ net start mariadb
그런데 만약,
ERROR 1045 (28000): access denied for user 'root'@'localhost' (using password: YES)
이런식으로 에러가 나오고, 접속이 또 안된다면 root 비번을 아예 없애는 코드는 아래의 코드이다.
mysql -u root -p 하고 password : 암호창 에서 그냥 빈값입력하면 로그인이 된다.
위의 mysql.exe 화면창에서
mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;
mysql> quit;
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '변경할비번';
flush privileges;
quit;
(mariadb)
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password as PASSWORD('비밀번호');
(mysql)
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
상기 코드처럼 암호값이 없는 빈값을 update 시켜서 활용하도록 한다.
참고 : https://jemmaa.tistory.com/26
참고 : https://wrkbr.tistory.com/623
참고 : https://unix.stackexchange.com/questions/58655/turn-off-skip-grant-tables-in-mysql