gcp에 mysql 원격접속하기

이태혁·2020년 7월 19일
1

1. gcp 에서 3306포트를 열어줍니다.

VPC 네트워크 -> 방화벽 ->방화벽 규칙 만들기
수신, 허용 IP: 0.0.0.0/0, tcp포트 3306으로 만들기

2. 원격허용 되었는지 확인

2-1 GCP 인스턴스에서 mysql -uroot -p로 mysql서버 접속하기

2-2 mysql DB로 바꾸기(여기에 user정보가 있음)

mysql> use mysql;

2-3 원격 접속 허용 확인

mysql> select host, user, password from user; (혹시 안되면 password빼기)

host에 %이면 모든 아이피에서 접속 허용된것이고 localhost이면 원격접속이 막힌것
(특정 아이피가 써있으면 그 아이피에서만 접속되는 것으로 설정돼있는것)

3. 원격접속에 필요한 계정만들기(root로는 원격접속이 안된다는 말이 있음)

create user '계정이름'@localhost identified by '비번';
(에러 없으면 만들어진 것)

혹시 계정을 지우고 싶을 때
delete from user where user='유저이름';

3. 원격 접속 허용시키기

3-1 특정 ip만 허용

myslq> grant all privileges on *.* to '계정이름'@'192.168.0.1' identified by '계정비번'

3-2 IP 대역 허용

myslq> grant all privileges on *.* to '계정이름'@'192.168.0.%' identified by '계정비번'

3-3 모든 아이피 허용

myslq> grant all privileges on *.* to '계정이름'@'%' identified by '계정비번'

여기서 *.*은 스키마명.테이블명이다. *.*은 모든 스키마(DB)의 테이블을 뜻한다. 특정 스키마와 테이블을 하고 싶으면 userDB.* 이런식으로 입력하면 된다.

flush privileges;로 권한을 적용해야 한다고 하는데 나는 안했는데도 됐음

  • 혹시 권한을 지우고 싶으면
    revoke all on 'db명'.'테이블명' from '계정명'@'호스트';

4. 원격 허용 확인

2번으로 다시 돌아가서 host가 %로 바뀌었는지 확인
혹은 show grants for '계정명'@'호스트'로도 확인할 수 있음

5. mysql 설정파일에서 모든 아이피에서 접속 만들기

sudo su
cd /etc/mysql/mysql.conf.d
vim mysqld.cnf

에서 bind-adress = 127.0.0.1을
0.0.0.0으로 만들면 됨

6. mysql 재시작

service mysql restart

7. 로컬에서 원격접속해보기

`mysql -h'gcp 외부IP주소' -u'계정명' -p

접속되면 성공!

profile
back-end, cloud, docker, web의 관심이 있는 예비개발자입니다.

0개의 댓글