DBMS/MySQL

[MySQL] bash 명령어로 유저 추가하기

ckm7907 2024. 9. 9. 10:23

필자는 docker로 mysql-container를 열어서 사용했다.

아래의 순서대로 mysql-container에 접속한 후, 사용자 목록을 확인하고, spring boot에서 연결할 sql의 유저를 추가한다.

 

먼저 mysql docker 환경에 접속한후, root로 접속한다.

docker exec -it mysql-container /bin/bash
mysql -u root -p

 

그 후 mysql을 사용하고, 어떤 유저가 존재하는 지 확인한다.

use mysql;
select user, host from user;

 

사용자를 만든다. (필자는 jamjam으로 만들었다.)

create user 'jamjam'@localhost identified by '${password}';

 

이 후 jamjam에게 모든 database *.*의 권한을 부여한다.

이때 에러가 난다면 root의 grant 권한을 설정해야 한다.

grant all privileges on . to 'jamjam'@localhost;

 

해결방법

루트의 아웃바운자는 docker로 mysql-container를 열어서 사용했다.

 

아래의 순서대로 mysql-container에 접속한 후, 사용자 목록을 확인하고, spring boot에서 연결할 sql 유저를 추가한다.

 

먼저 mysql docker 환경에 접속한후, root로 접속한다.

docker exec -it mysql-container /bin/bash

mysql -u root -p

 

 

그 후 mysql을 사용하고, 어떤 유저가 존재하는 지 확인한다.

use mysql;

select user, host from user;

 

사용자를 만든다. (필자는 jamjam으로 만들었다.)

create user 'jamjam'@localhost identified by '${password}';

 

이 후 jamjam에게 모든 database *.*의 권한을 부여한다.

 

이때 에러가 난다면 root의 grant 권한을 설정해야 한다.

에러 발생(ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%')
delete from mysql.* where User='root';
flush privileges;
grant all privileges on . to 'jamjam'@localhost;

 

이 명령어를 사용해서 jamjam 의 권한을 추가해야 한다.

 

 

해결방법

루트의 외부 접근 허용을 위해 root의 '%' 와일드 카드를 추가한 후 권한을 준다.

create user 'root'@'%' identified by 'root'
grant all privileges on . to 'root'@'%' with grant option;
grant all privileges on . to 'jamjam'@'localhost';

1. root의 외부 권한을 준다.

2. root 사용자에게 모든 권한을 부여하고, 다른 사용자에게도 권한을 부여할 수 있는 권한을 허용한다.

3. jamjam에 모든 권한을 부여한다.