MySQL 원격접속 허용
2017. 5. 29. 10:50ㆍBasic/etc
반응형
- MySQL 외부 접속 허용 설정
- MySQL에 원격 접속 허용하기
- MySQL에 root 원격 접속 허용하기
1 문제상황[편집]
- MySQL을 설치하면 기본적으로 로컬(localhost)에서만 접속이 가능하고 외부에서는 접속이 불가능하게 되어 있다.
- 외부에서 접속해보면 다음과 같은 오류 메시지가 나온다.[1]
Host '135.79.246.80' is not allowed to connect to this MySQL server
- Toad for MySQL과 같은 DB 관리 도구를 사용하여 DB에 원격으로 접속하려면 허용해주는 로컬 작업이 필요하다.
- 여기서는 root를 원격에서 접속할 수 있도록 설정한다. 이것을 응용하면 다른 계정에도 적용할 수 있다..
2 확인[편집]
- 로컬에서 접속하여 아래 쿼리를 날려보면 localhost가 나온다.
mysql> SELECT Host,User,Password FROM mysql.user;
+----------------+------------------+-------------------------------------------+
| Host | User | Password |
+----------------+------------------+-------------------------------------------+
| localhost | root | *8024A6913C57E024BDFC6E813A57DFB924E6803A |
| 127.0.0.1 | root | *8024A6913C57E024BDFC6E813A57DFB924E6803A |
| ::1 | root | *8024A6913C57E024BDFC6E813A57DFB924E6803A |
| localhost | debian-sys-maint | *02CE4A6D8F13BE579AC2468F0357B9D1468025A7 |
+----------------+------------------+-------------------------------------------+
- 즉 root 계정으로는 로컬에서만 접속가능하다.
- (같은 방법으로 root 대신 다른 사용자명도 조회할 수 있다.)
3 변경[편집]
- 모든 IP 허용[2]
INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('패스워드'));
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
- IP 대역 허용 ( 예: 111.222.xxx.xxx )
- 다음과 같이 설정하면 111.222로 시작하는 모든 IP가 허용된다.
INSERT INTO mysql.user (host,user,password) VALUES ('111.222.%','root',password('패스워드'));
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.%';
FLUSH PRIVILEGES;
- 특정 IP 1개 허용 ( 예: 111.222.33.44 )
INSERT INTO mysql.user (host,user,password) VALUES ('111.222.33.44','root',password('패스워드'));
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.33.44';
FLUSH PRIVILEGES;
4 원복[편집]
- 모든 IP를 허용한 경우 다음과 같이 원래 상태로 복구할 수 있다.
DELETE FROM mysql.user WHERE Host='%' AND User='root';
FLUSH PRIVILEGES;
5 LISTEN IP대역 변경[편집]
- MySQL bind-address 변경 문서를 참고하십시오.
root@zetawiki:~# netstat -ntlp | grep mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 7931/mysqld
root@zetawiki:~# vi /etc/mysql/my.cnf
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
root@zetawiki:~# service mysql restart
mysql stop/waiting
mysql start/running, process 8190
root@zetawiki:~# netstat -ntlp | grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8190/mysqld
6 같이 보기[편집]
- ERROR 2003 (HY000): Can't connect to MySQL server on
- MySQL 서버 LISTEN IP 대역 변경
- Toad for MySQL
- MySQL root 패스워드 초기화
- MySQL 읽기전용 계정 생성
- MySQL 원격 접속
- MySQL SSH 터널링
- 로컬호스트
7 주석[편집]
출처 : https://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9
반응형
'Basic > etc' 카테고리의 다른 글
[CI] Docker + Jenkins + Slack 사용하여 자동빌드 환경 구성 (0) | 2018.06.15 |
---|---|
[SQLD] 요약 사이트 (0) | 2018.02.13 |
Database의 특징 (0) | 2016.11.09 |
아키텍처, 프레임워크, 플랫폼. (0) | 2016.11.09 |
빅엔디안과 리틀엔디안 (0) | 2016.11.09 |