-  Linux 리눅스(우분투)에서 mysql 비밀번호(비번) root admin 패스워드(password) 바꾸는 방법


    - 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

 

 

 

반응형
Posted by codens