DB/Mysql

[Mysql/Maria DB] root password 변경 방법

louky 2019. 10. 31. 12:39
반응형

Mysql  또는 Maria  DB의 root 패스워드 변경 방법이다. 

Mysql과 Maria DB동일 구조를 가지고 있기에 같이 사용할 수 있다. 

 

다만, Mysql version따라 일부 필드의 필드명이 다를수 있으니 주의한다. 

 

 필드명은 Mysql 5.7 이하인지 이상인지 따라 달라진다. 

  • Mysql 5.7 이하 일 경우 :  Password
  • Mysql 5.7 이상 일 경우 : authentication_string

상기와 같이 필드명이 다르므로 버전을 모를 경우 아래와 같은 방법으로도 확인 할 수 있다. 

 

<Mysql 5.7 이하 /  MariaDB>

MariaDB [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]>
MariaDB [mysql]> select * from user limit 1 \G;
*************************** 1. row ***************************
                  Host: localhost
                  User: root
              Password:    ###패스워드 필드
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
   Delete_history_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin:
 authentication_string:
      password_expired: N
               is_role: N
          default_role:
    max_statement_time: 0.000000
1 row in set (0.001 sec)

 

<Mysql 5.7 이상>

Database changed
mysql> select * from user limit 1 \G;
*************************** 1. row ***************************
                  Host: localhost
                  User: root
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: mysql_native_password
 authentication_string:  ##패스워드 필드
      password_expired: N
 password_last_changed: 2018-11-29 14:47:37
     password_lifetime: NULL
        account_locked: N
1 row in set (0.00 sec)

 

패스워드 필드명이 확인 되었다면 아래와 같이 변경하면 된다.

 

먼저 user Table있는 db로 접속한다.   

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

 

<Mysql 5.7 이하 /  MariaDB>

mysql> update user set password=PASSWORD('new password') where user='root';

<Mysql 5.7 이상>

mysql> update user set authentication_string=PASSWORD('new password') where user='root';

 

 

** DB최고 관리자 계정인  root user의  user name 변경은 아래 링크를 참조한다. 

2019/10/31 - [DB/Mysql] - [MariaDB] Database root 계정 이름 변경

반응형