ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MariaDB 10.5 초기 설치 후에 root 비밀번호 설정하기
    Mac 2021. 1. 21. 22:06

    Mariadb 10.5에서는 설치후에 비번을 바꾸기 위해서 mysql -uroot 와 같은 방법으로 접속할 필요가 없고

    mysql 이라는 명령으로 비번이 없이 그냥 root mode로 접속이 됩니다.

    보안측면에서 많이 당황스럽지만, 그만큼 보안은 알아서 챙기라는 의미가 되는 것이 아닐까요?

     

    그.런.데. 비번 바꾸는 명령을 실행하니 오류가 나오는데

    mariadb의 root 비번 바꾸기 문서를 찾아서 해봐도 오류가 그대로 나옵니다.

    oneboard@oneboarcBookPro ~ % mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 16
    Server version: 10.5.8-MariaDB Homebrew
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    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]> update user set password=PASSWORD('password') where User='root';  
    ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

     

    그래서 위에서 나온 오류 메시지를 구글에 넣었더니, user가 테이블이 아니라 view가 되었다고 하네요. ㅠㅠ...

    stackoverflow.com/questions/64841185/error-1356-hy000-view-mysql-user-references-invalid-tables-or-columns-o

     

    ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack ri

    I have tried query but error anybody solved the error? MariaDB [mysql]> UPDATE user SET Host='%' WHERE User='root'; ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s...

    stackoverflow.com

     

    MariaDB-10.4+ the mysql.user is a view rather than a table.
    
    Its recommend to stop copying off old blogs to do any authentication relates changes in MySQL and MariaDB, the mechanisms are being updated and no longer apply. Always check the official documentation.
    
    Use SET PASSWORD or ALTER USER to manage user authentication.
    
    Also modifying a user/host component of the username will put triggers, events, plugins, grants, roles etc out of sync with the combined username (aka broken). So just DROP/CREATE users rather than manipulate them.

     

    비번을 SET PASSWORD 명령으로 바꾸라고 하네요.

    SET PASSWORD [FOR user] =
        {
            PASSWORD('some password')
          | OLD_PASSWORD('some password')
          | 'encrypted password'
        }
    SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');

    mariadb.com/kb/en/mysqluser-table/

     

    mysql.user Table

    User access and global privileges.

    mariadb.com

     

    그.런.데... 안된다... ㅠㅠ...

    MariaDB [mysql]> set password for 'root'@'localhost' = PASSWORD('password');
    Query OK, 0 rows affected (0.011 sec)

     

    진짜??? 실제로는 명령이 먹히고 있었습니다.

    DB에 영향을 미친 row가 0개라는 것은 단순한 메시지일 뿐. 

    이거를 몰라서 며칠을 날려버림. ㅠㅠ...

    MariaDB [mysql]> set password for root@'localhost' = PASSWORD('password1');
    Query OK, 0 rows affected (0.015 sec)
    
    MariaDB [mysql]> flush privileges ;
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [mysql]> quit
    

     

    DB 접속후에 사용자 테이블을 보면 ...  @localhost 라는 계정이 있어서

    root로 비번 없이 그냥 들어갔던 것 입니다.

    서버로 쓰려면 @로 시작하는 계정 2개는 지워야 합니다.

     

     

    Sequel Pro를 이용해서 oneboard 계정을 생성하고 DB에 접속하려고 하면 접속 오류가 나옵니다.

    root의 경우와 같이 계정의 비번이 설정되지 않았기에

    mysql로 접속해서 계정의 비번을 만들어줘야 GUI 툴 접속이 가능해 집니다. ㅠㅠ...

     

    oneboard@oneboarcBookPro ~ % mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 17
    Server version: 10.5.8-MariaDB Homebrew
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    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]> set password for oneboard@'localhost' = PASSWORD('password1');
    Query OK, 0 rows affected (0.011 sec)
    
    MariaDB [mysql]> flush privileges ;
    Query OK, 0 rows affected (0.001 sec)
    

     

    Sequel Pro의 접속을 하기 위해서 투닥투닥 거리다가 이틀이 날라갔네요

    MariaDB 10.5의 사용자 관리에 대한 부분은 고민이 많이 필요한 것 같습니다.

    반응형
Designed by Tistory.