본 포스팅은 Linux(Ubuntu) 환경에서 mysql 설치와, mysql root 계정 접속 세팅 방법을 설명합니다.
mysql 5.1 버전 이 후부터는 플러그인 개념이 도입되면서 리눅스에서는 초기 상태만으론 sudo권한 없이는 mysql의 root 계정 접속이 불가능 하므로, 일반 권한으로 root로 접속 가능하도록 세팅 해 주는 내용을 포함합니다.
MySQL 설치
$ sudo apt-get update
$ sudo apt-get install mysql-server
mysql-server 설치 후 mysql을 root 계정으로 접속 해 보면 아마도 아래와 같은 오류를 출력 할 겁니다.
$mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
이는 root 계정으로 접속 할 수 없다는 의미로, 서두에서 설명 하듯, mysql5.1 버전 이후 도입된 플러그인으로 인해 리눅스의 sudo 권한이 아니면 mysql의 root 계정에 접속할 수 없습니다.
이제, 일반 권한으로도 root 계정에 접속 할 수 있도록 설정을 바꿔줍니다.
먼저 sudo 권한으로 mysql에 접속합니다.
$ sudo mysql -u root
터미널의 명령어 라인이 mysql> 로 바뀌면서 mysql에 접속 됩니다.
이제 mysql 쿼리문을 통해 데이터베이스를 조작 할 수 있는 상태가 되었습니다.
아래의 명령어를 순차적으로 실행해서 user 테이블을 조회 합니다.
mysql> use mysql;
mysql> select user, plugin from user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
테이블의 user 중 root의 plugin이 auth_socket으로 되어 있는 부분을 mysql_native_password로 바꿔 준 후, 다시 테이블을 조회 해봅니다.
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;
mysql> select user, plugin from user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | mysql_native_password |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
root 계정의 plugin이 바뀐것을 확인 했으면, exit를 입력해 mysql을 빠져나옵니다.
이제 sudo 권한 없이 mysql 접속이 가능해 졌습니다.
사실 sudo mysql -u root -p로 한 번만 접속해서 사용자용 계정을 만들어 그것을 이용하는것이 가장 바람직합니다.
왜냐하면 root 계정은 매우 큰 권한을 갖고 있기 때문에 보안상 문제가 될 소지가 다분하기 때문입니다.
이것으로 포스팅을 마치겠습니다.
'Dev > etc' 카테고리의 다른 글
[Jenkins] Docker를 이용한 Jenkins - Spring Boot 프로젝트 배포 (16) | 2021.01.29 |
---|---|
[Jenkins] Jenkins - Spring Boot 프로젝트 jar 배포 (0) | 2021.01.26 |
SSL connection error로 인해 외부 MySQL 접속이 안되는 문제 해결 (0) | 2020.10.11 |
Ubuntu Linux - MySQL Cluster8.0 구축 (0) | 2020.09.26 |
Windows 환경에서의 MySql5.1~ 설치 (0) | 2020.03.12 |