728x90
오랜만에 mysql 접속을 하려니까 갑자기 접근이 안 되는 에러가 발생했습니다.
Ubuntu환경에서는 mysql이 default로 UNIX auth_socket plugin 을 사용한다고 합니다.
mysql ERROR 1698 (28000) 문제를 해결하려면 2가지 방법이 있어요.
1. root user의 plugin을 mysql_native_password로 수정한다.
2. system_user를 새로 만든다. (권장)
전 귀찮아서 1번으로 박아놨는데 나중에 수정해야 할 것 같습니다.
plugin 수정하기
sudo를 사용해서 mysql에 들어간 다음,
mysql root의 plugin의 auth_socket을 수정해주면 됩니다.
$ sudo mysql -u root
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------------------+
| User | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
$ sudo mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
plugin을 수정해주고 mysql을 재시작합니다.
이제 mysql -u root -p 명령어를 실행하면 mysql에 접속을 할 수 있습니다.
SYSTEM_USER 새로 만들기
$ sudo mysql -u root
mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
만약 SYSTEM_USER를 만들었을 경우엔 SYSTEM_USER 이름으로 접속을 해야 합니다.
mysql -u YOUR_SYSTEM_USER
728x90
'Computer Science > Database' 카테고리의 다른 글
[MySQL] Mac M1 MySQL 설치 with DBeaver (0) | 2024.08.04 |
---|---|
[MySQL] mysql workbench cannot open document error unserializing grt data 해결법 (0) | 2021.04.11 |
mysql 테이블 생성과 조작 그리고 레코드 삽입 (0) | 2019.08.02 |