ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MYSQL] Access denied for user 'root'@'localhost'
    case Computer : 2014. 3. 25. 13:55


    MySQL 을 처음 설치 했을 때 mysql 접속 하려 할때 아래와 같은 에러가 발생 하는 경우가 생긴다.


    MySql: Access denied for user 'root'@'localhost' 


    에러 메시지는 아래와 같이 출력이 되는데 이때 root권한을 변경하고 싶어도 로그인이 안되어 변경이 불가능하다.


    ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

    or

    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)


     


    * Mysql 패스워드 초기화 방법

    - 로그인시 권한 정보를 확인하는 테이블을 일시적으로 skip 하여  로그인할수 있게 한후에
    디비정보 변경을 하고 다시 서비스를 재시작하는 방법을 사용한다.

    순서는 다음과 같다.


    1. mysql 서비스 종료

    $sudo /etc/init.d/mysql stop


    2. mysql 데몬 직접 실행( --skip-grant-table 옵션)

     - 권한 정보 skip (설정후 보안을 위해 반드시 재시작 해야한다)

    $sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &


    3. mysql 접속 및 패드워드 초기화


    $mysql -u root mysql
    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';
    $mysql> FLUSH PRIVILEGES;


    4. mysql 서비스 재시작

    $sudo /etc/init.d/mysql stop $sudo /etc/init.d/mysql start


    서비스는 반드시 재시작 하기를 권장한다.

    mysql 서비스가 --skip-grant-tables 옵션으로 실행되고 있다면 누구든지 권한없이 접속이 가능하기 때문이다.


    수정 14.03.25-------------------------------------------------

    수정후 mysql이 접속이 안된다면 프로세스 리스트(ps -ef)에 mysqld --skip-grant-tables 로 실행 된 항목이 있는지 확인해 보시기 바랍니다.

    혹시나 해당 프로세스가 동작하고 있다면 종류후 다시 mysql 를 실행해주시면 됩니다.




    반응형

    댓글

Designed by Tistory.