Skip to main content

mariadb에서 패스워드 없이 로그인할때

문제상황

mysql_install_db 실행 후 mysql 프로세스 실행 완료.
mysql_secure_install 적용하고 나서 로그인할때 패스워드 없이 로그인이 되는 경우.

# mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.4.7-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

응 ❓‼❓

심지어 DDL / DML도 된다. ??

MariaDB [(none)]> create database test123;
Query OK, 1 row affected (0.003 sec)

MariaDB [test123]> create table wow( name int);
Query OK, 0 rows affected (0.008 sec)
MariaDB [test123]> insert into wow values(123);
Query OK, 1 row affected (0.003 sec)
MariaDB [test123]> select * from wow;
+------+
| name |
+------+
| 123 |
+------+
1 row in set (0.001 sec)

--
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

발생원인

mariadb사이트에서 검색해보니.... Mariadb 10.4.3 이상에서는 unix_socket 인증 플러그인이 기본적으로 활성화 되는데, 로컬 소켓의 경우 root @localhost 으로 로그인할때는 로컬 소켓으로 인증한다는거...

조치사항

my.cnf 파일에 unix_socket기능을 OFF하면 됨(mariadb 프로세스 재기동 필요)

$> vi /etc/my.cnf

[mariadb]
...
unix_socket=OFF

 

 

reference