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 |