- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
[MySQL] 원격 접속이 안될때 확인할 사항 본문
* Linux 버전: Ubuntu 12.04.5 LTS Server
* 우분투 한국 커뮤니티: http://www.ubuntu-kr.org/
* Documentation: https://help.ubuntu.com/
< Ubuntu에서 MySQL 설치하기 >
http://jacking.tistory.com/1116
< MySQL 검색 >
sudo apt-cache search mysql-server
< MySQL 설치 >
sudo apt-get install mysql-server
=> 404 에러 남
Ubuntu Linux에서 MySQL을 설치하는 가장 쉬운 방법
http://www.rackspace.com/knowledge_center/article/installing-mysql-server-on-ubuntu
Ubuntu package manager
sudo aptitude install mysql-server
root Password 설정.
설치 완료.
설치된 버전: Server version: 5.5.41-0ubuntu0.12.04.1 (Ubuntu)
< Booting 시에 자동으로 MySQL 실행되도록 설정 >
sudo /usr/sbin/update-rc.d mysql defaults
방화벽을 open 해야 외부 machine에서 mysql Server로 접근할 수 있다.
iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
< Ubuntu: Stat / Stop / Restart Iptables Firewall Service >
http://www.cyberciti.biz/faq/ubuntu-start-stop-iptables-service/
나의 경우는 /etc/mysql/my.cnf 여기에 있었다.
여기서
bind-address = 127.0.0.1
mysql> show variables like 'skip_networking';
< mysql service 재시작 >
sudo service mysql restart
외부에서 접속할 User 만들기
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Password';
CREATE USER 'testuser'@'%' IDENTIFIED BY 'Password';
# testuser User 에게 testdb DB에 대한 모든 권한을 부여함.
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost' WITH GRANT OPTION;
# 외부에서 접속하기 위해서 'testuser'@'%' User 에 대해서 다시 GRANT 해 줌.
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%' WITH GRANT OPTION;
SHOW GRANTS FOR 'testuser';
mysql> select user, host, password from mysql.user;
+------------------+----------------------+-------------------------------------------+
| user | host | password |
+------------------+----------------------+-------------------------------------------+
| testuser | % | |
| testuser | localhost | *1122333445566778899012345678901234567890 |
+------------------+----------------------+-------------------------------------------+
+------------------+----------------------+-------------------------------------------+
| user | host | password |
+------------------+----------------------+-------------------------------------------+
| testuser | % | *1122333445566778899012345678901234567890 |
| testuser | localhost | *1122333445566778899012345678901234567890 |
+------------------+----------------------+-------------------------------------------+
위 두 경우는 ERROR 메시지가 다르다.
위의 경우(에러 메시지: ERROR 1130 (HY000))는 접근 권한이 없는 경우.
아래 경우(에러 메시지: ERROR 1045 (28000))는 Password 가 틀린 경우.
몇 시간 동안의 삽질의 결론은, 원격으로 접속하기 위해서는 HOST '%'에 대해서도 사용자를 따로 생성하고, GRANT 도 따로 해 주고 나서 다시 password 를 password() 함수를 이용해서 다시 update 해 주어야 한다는 점이다.
그 후에,
mysql> flush privileges;
를 해 주던지 아니면 MySQL 서버를 재기동할 것.
'Database > MySQL' 카테고리의 다른 글
[MySQL] install을 했는데 서비스에 안나올때 추가하기. (0) | 2015.03.15 |
---|---|
[MySQL] Linux에서 테이블명 대소문자 구분 안하기 (0) | 2015.02.17 |
MySQL DB/User 생성 및 권한 추가 (0) | 2014.10.22 |
Windows Command 창에서 mysql 실행시키기 (0) | 2014.08.20 |
[MySQL] Binary Data 넣기 (0) | 2013.12.12 |