mysql -u root -p
로 로그인을 하려하는데 에러가 발생했다.
MySQL 데이터베이스를 연결하기 위해,
MySQL Workbench에서 아래 명령어를 입력하여 유저를 생성하였다.
-- 유저이름@아이피주소
create user 'root'@'localhost' identified by '1234';
-- 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
CREATE DATABASE test CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
use test;
root 계정 유저 생성을 완료했다.
모든 권한도 부여하였는데..
사용자별 Auth plugin 을 조회합니다.
SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+------------------+-----------+-----------------------+
root 사용자는 auth_socket 인증 방식을 사용하는 것을 볼 수 있습니다.
이것을 caching_sha2_password 방식으로 변경합니다.
예전 버전은 auth plugin 이 mysql_native_password 방식일 수 있으며,
그럴 경우 아래 쿼리와 같이 mysql_native_password 로 설정하세요.
잘못 설정할 경우 root 로도 로그인이 불가능합니다.
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
UPDATE user SET plugin='caching_sha2_password' WHERE User='root';
root 암호가 설정되지 않았다면 설정해 줍니다.
SET PASSWORD FOR 'root'@'localhost' = '1234';
변경된 정책을 반영해 줍니다.
FLUSH PRIVILEGES;
정책 변경이므로 MySQL 을 재구동합니다.
끝