본문 바로가기

IT개발정보

ubuntu mysql 설치 및 관리

1. ubuntu mysql 설치

# 우분투 apt 저장소 업데이트
$ sudo apt-get update

# mysql 서버 설치하기
$ sudo apt-get install mysql-server

# 우분투 방화벽 허용
 - MySQL 포트 3306을 사용하기 때문에 방화벽을 열어준다.
$ sudo ufw allow mysql

# MySQL 실행하기
$ sudo systemctl start mysql

# MySQL 접속
mysql -h 서버주소 -u 사용자명 -p 비밀번호 데이터베이스이름
$ sudo mysql -h localhost -u root -p

# MySQL 종료
mysql> quit

2. mysql 사용자관리

# 사용자 CREATE
localhost에서 접속하는 USER 계정을 생성한다.
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
모든 서버에서 접속가능한 USER 계정을 생성한다.
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';

# 사용자 권한 설정
사용자에게 모든 권한을 일임하는 명령어다.
WITH GRANT OPTION 옵션은 다른 사용자에게 권한을 부여하고 회수할 수 있다.
*.* 은 모든 Database.모든 table의 권한을 의미한다.

ALL PRIVILEGES를 대신해서 SELECT, UPDATE, DELETE, CREATE, INDEX, DROP, 등의
권한 명칭을 따로 설정해서 세부적인 권한설정이 가능하다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost' WITH GRANT OPTION;

권한 해제는 REVOKE 명령어를 사용한다.
mysql> REVOKE ALL PRIVILEGES *.* FROM 'testuser'@'localhost';

사용자 삭제는 DROP 명령어를 사용한다.
mysql> DROP USER 'testuser'@'localhost';

권한 설정을 업데이트 한다.
mysql> flush privileges;

 

3. mysql 외부접근

#모든 IP 접근 허용
mysql> grant all privileges on *.* to ‘root’@‘%’ identified by ‘패스워드’;


#특정 IP 대역 접근 허용
mysql> grant all privileges on *.* to ‘root’@‘192.168.1.%’ identified by ‘패스워드’;
 
#특정 IP 접근 허용
mysql> grant all privileges on *.* to ‘root’@‘192.168.1.2’ identified by ‘패스워드’;


#권한적용
mysql> flush privileges;

4. mysql 8 부터 비밀번호 변경오류

MySQL 8부터는 더 이상 GRANT명령을 사용하여 사용자를 (암시적으로) 생성할 수 없습니다. 대신 CREATE USER를 사용 하고 GRANT 문을 사용하십시오.

 

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

 

 

 

'IT개발정보' 카테고리의 다른 글

(REST) REST API 공부  (0) 2023.04.05
(Docker) 컨테이너 안에 vi 편집기 설치  (0) 2023.04.03
Docker 명령어  (0) 2023.04.02
aws EC2 서버 포트 열기  (0) 2023.04.02
aws EC2 서버 포트 열기  (0) 2023.04.02