이전 노션 블로그의 [MySQL] DB Authentication 문제 | ERROR 1698 | Access denied for user 'root' (2021.07.26)로부터 마이그레이션된 글입니다.
MariaDB 10.0 버전부터는 보안 방식이 'Unix Socket' 방식이 적용된다.
mysql -u root -p password
따라서 이 두 가지를 위해서는 plugin 을 바꿔야한다. 만약 초기 접속이라면, 비밀번호도 설정해줘야한다.
$ sudo mysql
mysql> use mysql;
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
mysql> UPDATE user SET plugin='mysql_native_password' WHERE user='user'
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ sudo service mysql restart
$ mysql -u root -p PASSWORD
🚨 plugin 을
caching_sha2_password
으로 설정해선 안된다.
DB의 버전에 따라 필요한 경우가 있지만, mariaDB 설정에서는mysql_native_password
가 올바른 설정이었다. plugin 설정이 잘못되면, 접속하지 못한다.