Explanation
가상 환경이나 클라우드 환경의 mysql을 외부에서 접속해야 할때(DB GUI Tool을 사용한다거나..) MySQL을 설정하는 방법에 대해 적어보려 합니다.
1. MySQL 환경설정 수정
우선 MySQL 설정파일이 어디있는지 확인합니다.
$ mysqladmin -help
...
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
...
아마도 저 3군대 중에 한곳 입니다. 저는 /etc/mysql/my.cnf 이곳에 있네요.
안의 내용을 확인해봅니다.
$ cat /etc/mysql/my.cnf
...
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
저렇게 인클루드 되어 있습니다. MySQL 설정 파일을 엽니다
$ vi /etc/mysql/mysql.conf.d/mysqld.cnf
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# bind-address = 127.0.0.1
저기에서 bind-address = 127.0.0.1이 부분을 #으로 주석처리하거나 0.0.0.0으로 모든 접근을 허용하거나 또는 원하는 아이피를 설정한 후에 MySQL 재실행합니다.
(당연히.. 상용 서비스의 DB라면 모두 허용하는건 보안적으로 문제가 있을 수 있겠죠??)
$ service mysql restart
저는 우분투 환경인데 OS에 따라 명령어는 조금씩 다릅니다.
2. mysql 유저 생성 및 권한부여
다음으로 MySQL 접속합니다
$ mysql -u root -p
...
접속한 후에 아래와 같은 쿼리문을 날립니다.
mysql> GRANT ALL PRIVILEGES ON *.* TO cheolguso@'%' IDENTIFIED BY "1234";
"1234"라는 비밀번호로 cheolguso라는 유저에 권한 부여
(혹시나.. 앞에 mysql>은 명령어가 아니고 mysql에 접속해있다는 $와 같은 터미널에서의 표기입니다.)
3. 외부에서 접속
대략 로컬이라는 가정하에 기본값으로는 아래와 같은 설정으로 DB에 접속할 수 있습니다.
Host: 127.0.0.1
Username: cheolguso
Password: 1234
Port: 3306



