ODBC등 외부에서 MySQL에 접속을 하려면, MySQL 접속이 허용이 필요
mysq 5.7 버전 까지는 grant all 설정으로 유저생성과 권한을 같이 줄 수 있었지만
8버전은 유저 생성과 권한 부여를 따로 해주어야 한다
mysql> create user 계정@'%' identified by '암호'
mysql> grant all privileges on DB.테이블(*) to 계정@'%' with grant option;
mysql > flush privileges;
----------------------5.7버전----------------------
1. 테이블 살펴보기
먼저, mysql에 들어가서 다음 방법을 이용해 접근 상태 확인.
mysql> use mysql;
mysql> select host, user, password from mysql.user;
출력된 정보를 확인해보면, localhost나 127.0.0.1만 등록이 되어있는 것을 확인 할 수 있는데, 외부에서 접근이 되게 하려면, 따로 등록이 필요.
2. 권한 설정 하기
설정을 할 때, 특정 IP나 특정 IP대역만 허용을 하거나, 전체 허용.
1) 특정 IP 접근 허용 설정
mysql> grant all privileges on DB명.테이블명 to 'root'@'220.000.00.000' identified by 'root의 패스워드';
2) 특정 IP 대역 접근 허용 설정
mysql> grant all privileges on DB명.테이블명 to 'root'@'220.000.%' identified by 'root의 패스워드';
3) 모든 IP의 접근 허용 설정
mysql> grant all privileges on DB명.테이블명 to 'root'@'%' identified by 'root의 패스워드'
3. 등록확인 후 적용시키기
등록이 끝났으면, 계정에 설정한 IP혹은 %가 등록 되어있는지 확인
mysql> select host, user, password from mysql.user;
mysql> flush privileges;
4. LISTEN IP 대역 변경
my.cnf 설정파일에서 bind-address라는 부분을 주석처리.
vi /etc/my.cnf
# bind-address = 127.0.0.1
5. mysql 재시작
주석처리가 끝났으면, mysql을 재시작.
/etc/init.d/mysqld restart
6. mysql 리눅스 방화벽 설정 ( 3306 )
[root@localhost /]# iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
[root@localhost /]# service iptables save
iptables: 방화벽 규칙을 /etc/sysconfig/iptables에 저장 중: [ OK ]
[root@localhost /]# vi /etc/sysconfig/iptables
[root@localhost /]# service iptables restart
iptables: 체인을 ACCEPT 규칙으로 설정 중: filter [ OK ]
iptables: 방화벽 규칙을 지웁니다: [ OK ]
iptables: 모듈을 언로드하는 중: [ OK ]
iptables: 방화벽 규칙 적용 중: [ OK ]
reject 상단에 정책을 설정
'프로그래밍언어 > DB' 카테고리의 다른 글
MYSQL 아키텍처 - 스토리지 엔진 (0) | 2023.08.07 |
---|---|
무결성 관리 및 보안과 권한부여에 대한 팁 (0) | 2018.07.09 |
INSERT 데이터삽입 (0) | 2017.10.10 |
database mysql mariadb 명령어 (0) | 2017.08.30 |