Firebase의 Hosting, Functions, Firestore를 이용하여 웹상에 메모장을 만들기
가상 환경이나 클라우드 환경의 MySQL을 외부에서 접속하는 방법을 알아봅니다
2018-02-20
Explanation
가상 환경이나 클라우드 환경의 mysql을 외부에서 접속해야 할때(DB GUI Tool을 사용한다거나..) MySQL을 설정하는 방법에 대해 적어보려 합니다.
우선 MySQL 설정파일이 어디있는지 확인합니다.
1 |
$ mysqladmin -help |
1 2 3 4 |
... 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 이곳에 있네요.
안의 내용을 확인해봅니다.
1 |
$ cat /etc/mysql/my.cnf |
1 2 3 |
... !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ |
저렇게 인클루드 되어 있습니다. MySQL 설정 파일을 엽니다
1 |
$ vi /etc/mysql/mysql.conf.d/mysqld.cnf |
1 2 3 4 |
# 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 # |
1 |
# bind-address = 127.0.0.1 |
저기에서 bind-address = 127.0.0.1이 부분을 #으로 주석처리하거나 0.0.0.0으로 모든 접근을 허용하거나 또는 원하는 아이피를 설정한 후에 MySQL 재실행합니다.
(당연히.. 상용 서비스의 DB라면 모두 허용하는건 보안적으로 문제가 있을 수 있겠죠??)
1 |
$ service mysql restart |
저는 우분투 환경인데 OS에 따라 명령어는 조금씩 다릅니다.
다음으로 MySQL 접속합니다
1 2 |
$ mysql -u root -p ... |
접속한 후에 아래와 같은 쿼리문을 날립니다.
1 |
mysql> GRANT ALL PRIVILEGES ON *.* TO cheolguso@'%' IDENTIFIED BY "1234"; |
“1234”라는 비밀번호로 cheolguso라는 유저에 권한 부여
(혹시나.. 앞에 mysql>은 명령어가 아니고 mysql에 접속해있다는 $와 같은 터미널에서의 표기입니다.)
대략 로컬이라는 가정하에 기본값으로는 아래와 같은 설정으로 DB에 접속할 수 있습니다.
1 2 3 4 |
Host: 127.0.0.1 Username: cheolguso Password: 1234 Port: 3306 |