이걸 고민하게 된 이유
프로젝트를 GCP 서버에 배포하다가 든 의문점이 있다.
데이터베이스 안에 있는 내용을 어떻게 확인할 수 있지?
그 방법을 함께 알아봅시다..
저 바보라 굉장히 친절하게 정리하니까 잘 따라오시면 됩니다..!
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>
(혹시 안되면 password빼기)
host에 %이면 모든 아이피에서 접속 허용된것이고 localhost이면 원격접속이 막힌것
(특정 아이피가 써있으면 그 아이피에서만 접속되는 것으로 설정돼있는것)
3. 원격접속에 필요한 계정만들기(root로는 원격접속이 안된다는 말이 있음)
create user '계정이름'@localhost identified by '비번';
(에러 없으면 만들어진 것)
혹시 계정을 지우고 싶을 때
delete from user where user='유저이름';
4. 원격 접속 허용시키기
4-1 특정 ip만 허용
myslq> grant all privileges on *.* to '계정이름'@'192.168.0.1' identified by '계정비번'
4-2 IP 대역 허용
myslq> grant all privileges on *.* to '계정이름'@'192.168.0.%' identified by '계정비번'
4-3 모든 아이피 허용
myslq> grant all privileges on *.* to '계정이름'@'%' identified by '계정비번'
여기서 *.*은 스키마명.테이블명이다. *.은 모든 스키마(DB)의 테이블을 뜻한다. 특정 스키마와 테이블을 하고 싶으면 userDB. 이런식으로 입력하면 된다.
flush privileges;로 권한을 적용해야 한다고 하는데 나는 안했는데도 됐음
- 혹시 권한을 지우고 싶으면revoke all on 'db명'.'테이블명' from '계정명'@'호스트';
5. 원격 허용 확인
2번으로 다시 돌아가서 host가 %로 바뀌었는지 확인
혹은 show grants for '계정명'@'호스트'로도 확인할 수 있음.
6. mysql 설정파일에서 모든 아이피에서 접속 만들기
에서 bind-adress = 127.0.0.1을
0.0.0.0으로 만들면 됨
6. mysql 재시작
service mysql restart
7. 로컬에서 원격접속해보기
`mysql -h'gcp 외부IP주소' -u'계정명' -p
접속되면 성공! mysql -h'34.82.77.27' -u'dbuser' -p
'server' 카테고리의 다른 글
[Server] Nginx가 뭔데 배포할 때마다 설치하는거지? (0) | 2025.01.21 |
---|---|
[GCP] GCP VM인스턴스 안에서 파일을 읽는 방법 (0) | 2024.03.21 |