Cloud SQL
비공개 서비스 액세스 연결:
- VPC 네트워크당 연결이며 Memorystore, TensorFlow, SQL과 같은 모든 관리형 서비스에서 사용할 수 있습니다.
- VPC 네트워크 및 Google에서 소유한 네트워크 간에 VPC 피어링을 사용한 연결로서, 인스턴스 및 서비스가 내부 IP 주소를 사용하여 전용 통신을 할 수 있습니다.
- 서비스 프로듀서 측에서 격리된 프로젝트가 생성되므로 다른 고객에게 공유되지 않습니다. 프로비저닝한 리소스 요금만 청구됩니다.
[ Cloud SQL Architecture ]
사전 결정사항
Cloud SQL 은 구글에서 완전 관리형 데이터베이스로 제공하는 DB이므로 패치, 보안, 백업, 스토리지 용량관리 등이 구글에 의해 자동 관리되는 편리성이 있습니다. 반대로 DB 서버 직접 접근이나 DB root 계정의 제약, 파라미터 제약 등이 있습니다.
Cloud SQL 을 사용할지 아니면 VM에 Mysql을 설치해서 사용할지 에 대한 충분한 검토가 선행되어야 합니다.
아래 내용은 DB 설치 전 결정해야 할 사항입니다.
- Database version : 5.6, 5.7, 8.0 중 선택
- character_set_server : Database 의 character 설정(5.7 이하 default는 latin1, 8.0 이상은 default는 utf8mb4)
- lower_case_table_names : 테이블명 대.소문자 구분 여부(0 : 구분, 1 : 미구분)
- default_time_zone : default는 UTC 이므로 KST로 설정하려면 default_time_zone 플래그값을 +09:00으로 변경
- Cloud SQL 제약사항 : Cloud SQL과 표준 mysql과의 기능 차이 확인
Cloud SQL 생성 절차(MySQL)
1. GCP 계정으로 GCP 접속
2. 좌측 상단의 햄버거 메뉴를 클릭한 후 SQL 메뉴를 클릭한다.
3. [인스턴스 만들기] 버튼을 클릭한다.
4. 데이터베이스 엔진선택 항목에서 [MySQL 선택] 버튼을 클릭한다.
5. 데이터베이스 생성을 위한 API사용 설정을 클릭합니다. Cloud SQL을 처음 생성할 경우에만 나타나고, 이미 사용 설정을 했다면 아래 화면은 나타나지 않습니다.
6. 데이터베이스 생성을 위한 인스턴스 정보, 리전 및 가용성, 인스턴스 설정(머신 유형, 용량, 백업, 플래그) 등의 정보를 입력합니다.
- 인스턴스ID : 임의의 ID를 입력
- 비밀번호 : MySQL root 패스워드로 사용됨
- 데이터베이스 버전 : 현재 8.0, 5.7, 5.6 중 선택
- 리전 : Cloud SQL을 설치하고자 하는 region 선택
- 영역 가용성 : 단일 서비스를 할지 multi-region 서비스를 할지 선택(개발은 단일, 운영은 멀티영역)
인스턴스 맞춤설정
인스턴스 맞춤설정 영역에서 "구성 옵션 표시"를 클릭한다.
- 머신 유형 : 사용하고자 하는 머신 타입 선택(cpu, 메모리)
- 저장용량 : 필요 공간 선택 또는 입력
- 연결
인스턴스 IP 할당 : private IP를 설정할지 public IP를 설정할지 선택한 후 설정합니다. 본 문서에서는 비공개 IP를 선택합니다.
비공개 IP 선택 및 네트워크에서 vpc를 선택한 후 "비공개 서비스 액세스 연결 필요" 항목에서 [연결 설정] 버튼을 클릭한다.
새로운 화면에서 "IP 범위 할당"에 이름과 할당된 IP 주소범위를 입력한 후 [계속] 버튼과 [연결만들기] 버튼을 클릭한다.
여기에서 생성한 서비스 네트워크는 VPC 네트워크 세부정보의 "PRIVATE SERVICE CONNECT"에서 확인할 수 있으며, 반대로 VPC "PRIVATE SERVICE CONNECT"에서 생성한 네트워크를 Cloud SQL 생성 시 연결할 수도 있다.
본 문서에서는 이름은 sbn-aicallbot-sql-prd-10으로 IP주소범위는 10.0.8.0/24로 설정했다.
-- 아래 오류발생 시
'servicenetworking-googleapis-com' 비공개 연결 만들기
Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection
--> 오류 조치
클라우드 쉘에서 아래 내용을 수행합니다.
gcloud beta services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=sbn-aicallbot-sql-prd-03 \
--network=vpc-aicallbot-prd \
--project=pjt-aicallbot-prd \
--force
"승인된 네트워크" 항목에서는 Cloud SQL에 접속할 수 있는 네트워크 대역을 설정합니다. 본 문서에서는 외부에서 접속을 가정하여 0.0.0.0/0 으로 설정했습니다. 공개 IP에 연결하려면 승인된 네트워크 또는 Cloud SQL 프록시를 사용해야 합니다.
유지보수 :
- 유지보수를 위한 업데이트되는 동안 인스턴스가 다시 시작되므로 서비스 중단이 발생할 수 있다. 이를 방지하기 위해서 유지보수 거부기간을 설정한다. 단 최대 90일 까지만 적용되므로 운영 단계에서는 주기적으로 설정해야 한다.
플래그 : MySQL DB 파라미터. 변경을 원하는 파라미터가 있을 경우 플래그 항목에서 설정
플래그 중 lower_case_table_names, default_time_zone, character_set_server 는 반드시 자신의 시스템에 맞도록 설정해야 합니다. character_set_server 는 utf8과 utf8mb4가 있는데 emoji 등 4byte 문자를 사용할 경우에는 utf8mb4를 지정하고 그렇지 않을 경우 공간의 효율을 위해 utf8로 설정합니다.
설정을 완료했으면 [인스턴스 만들기] 버튼을 클릭하여 Cloud SQL 을 생성합니다.
오류
Invalid request: Private authorized network (10.0.0.0/22)..
추적 번호: c3848179179780577
--> 승인된 네트워크 설정 시 subnet인 10.0.0.0/22 입력값이 오류가 발생. 0.0.0.0/0 을 입력하니 오류는 발생하지 않음.
7. 아래와 같이 GCP 에서 제공하는 Cloud SQL인 mysql 서버가 생성된 것을 확인할 수 있습니다.
Cloud SQL (MySQL) 접속 방법
Cloud SQL DB에 접속하는 방법으로 DB관리 툴, GCP Cloud shell, Data Studio로 연결하는 방법을 설명합니다. DB 접속 도구는 MySQL Workbench, Toad for MySQL, SQuirrel, DBeaver 등이 있습니다. 본 문서에서는 HeidiSQL 툴로 접속하는 방법을 설명합니다.
1. DB 관리 툴(HeidiSQL)로 연결
GCP 콘솔에 로그인한 다음 좌측 상단의 햄버거 메뉴를 클릭한 후 SQL 메뉴를 클릭한다.
위에서 생성한 Cloud SQL 인스턴스에 대한 정보가 아래와 같이 표시됩니다. 공개IP주소는 외부에서 DB로 연결 시 필요한 정보입니다. 추가로, 외부에서 접속하기 위한 네트워크 설정(inbound 설정)이 필요합니다.
[네트워크 추가] 클릭 후 이름 항목에 원하는 이름을 입력하고(본 문서에서는 ALL 입력) 네트워크 항목에는 0.0.0.0/0 을 입력하고 [완료]를 클릭합니다. 최종 저장을 위해 하단의 [저장] 버튼을 클릭하여 변경된 사항을 저장합니다.
설치가 되어 있지 않은 경우에는 https://www.heidisql.com/download.php 에서 HeidiSQL 을 다운로드 후 설치합니다.
설치 완료 후 heidisql 을 실행합니다. install 버전과 portable 버전에 따라 아래 화면은 다를 수 있습니다. 좌측 하단의 [신규] 버튼을 클릭하고 세션 이름은 원하는 이름으로 설정합니다.
- 네트워크 유형 : maraiDB or MySQL(TCP/IP) 선택
- Library : libmysql.dll 선택
- 호스트명 / IP : Cloud SQL 인스턴스의 공개 IP 입력
- 사용자 : root 입력
- 암호 : Cloud SQL 생성 시 입력했던 암호
- 포트 : 3306
- 데이터베이스 : 생략 가능
2. Cloud Shell에서 연결
참고: Cloud Shell은 비공개 IP 주소에서 작동하지 않습니다.PUBLIC IP 주소가 있는 인스턴스에만 적용됩니다.
- Google Cloud Console의 오른쪽 상단 모서리에 있는 Cloud Shell 아이콘()을 클릭합니다. Cloud Shell 초기화가 완료되면 다음이 표시됩니다.
Welcome to Cloud Shell! Type "help" to get started. username@cloudshell:~$
- Cloud Shell 프롬프트에서 Cloud SQL 인스턴스에 연결합니다."CloudShell승인" 메시지창이 뜰 수 있습니다.
gcloud sql connect demo-mysql --user=root
- 루트 비밀번호를 입력하고 엔터키를 입력하면 mysql 프롬프트가 표시됩니다.
3. 데이터 스튜디오로 연결
구글 데이터 스튜디오는 구글에서 만든 데이터 시각화 플랫폼입니다.
데이터 스튜디오 데이터 소스는 MySQL용 Cloud SQL 데이터베이스 커스텀 쿼리에 연결할 수 있습니다.
스프레드시트, 애널리틱스, Google Ads, Google BigQuery 등의 데이터를 쉽게 연결할 수 있습니다.
원시 데이터를 보고서와 대시보드를 만드는 데 필요한 측정항목과 측정기준으로 변환합니다.
연결 방법
- 데이터 스튜디오에 접속합니다.(https://datastudio.google.com/)
- 왼쪽 상단에서 [만들기] 아이콘 버튼을 클릭 한 다음 데이터 소스를 선택합니다.
- 아래 화면이 나타나면 검색창에 mysql 을 입력하면 Mysql용 Cloud SQL 서비스 목록을 확인할 수 있습니다. MySQL용 Cloud SQL 커넥터를 선택합니다.
- 아래처럼 메시지가 표시되면 데이터 스튜디오에서 Cloud SQL에 액세스할 수 있도록 [승인]합니다.
- 데이터베이스 연결을 설정하는 방법은 다음과 같습니다.
- 인스턴스연결이름, 데이터베이스, 사용자 이름, 비밀번호를 입력한 후 [인증] 버튼을 클릭합니다. 인스턴스 연결이름은 [SQL] 메뉴를 클릭하면 조회되는 SQL 인스턴스 정보 중 "인스턴스 연결 이름" 에서 확인할 수 있습니다. [인증] 버튼을 클릭합니다.
- 인증 버튼을 클릭하면 접속한 데이터베이스의 테이블 목록이 나열됩니다.
4. Cloud 프록시를 통한 연결
아래의 다이어그램은 Cloud SQL 인증 프록시가 Cloud SQL에 연결되는 방식을 보여준다. Proxy 방식으로 연결하는 방법을 설명을 생략합니다.
Cloud SQL 프록시를 사용해서 Cloud SQL 인스턴스에 엑세스할 수 있습니다.
2.1 Cloud SQL Admin API 사용 설정
GCP 콘솔의 검색창에 "cloud sql admin api"를 입력하여 cloud sql admin api 를 검색 후 클릭합니다.
2.3 프록시 설치
5. 비공개 IP 로 연결
비공개 IP를 이용한 Cloud SQL 연결을 사용할 경우 “할당된 IP 주소 범위”를 정의하고 비공개 서비스 연결을 만들어야 합니다.
(AWS 와 비교하면 VPC와 subnet으로 생각하면 될 것 같습니다.)
Cloud SQL 생성하기
SQL - 인스턴스 만들기 -> MySQL 선택
영역지정 하위의 [연결 ] 클릭한 다음 비공개IP 항목 선택 후 네트워크에서 관련 VPC 를 선택
할당된 IP 범위사용 항목에 VPC에 생성한 Private Service Connection(subnet) 선택
[인스턴스 만들기] 클릭하여 Cloud SQL 인스턴스 생성.
Cloud SQL 생성이 완료되면 SQL 목록에서 인스턴스의 IP 주소를 확인할 수 있습니다.
접속 테스트
접속 테스트를 위한 같은 VPC 내에 VM 인스턴스를 생성합니다.
클라우드 쉘이나 SSH 등을 통해 VM 인스턴스에 접속합니다. 클라우드 쉘에서는 private IP로 Cloud SQL 에 접속할 수 없습니다.
MySQL DB에 접속하기 위해 Mysql client 설치 후 mysql 접속 명령어를 수행합니다.
# MySQL 클라이언트를 설치합니다.
# debian 인 경우에는 sudo apt-get install default-mysql-client 실행
$ sudo apt-get install mysql-client
# 생성한 Cloud SQL에 원격으로 접속합니다.
$ mysql -h 10.10.0.3 -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.7.25-google-log (Google)
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MySQL [(none)] > create database firstdb;
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| firstdb |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.035 sec)
6. gcloud cli로 연결
GCP 콘솔에서 CLOUD SHELL 을 클릭하여 터미널창을 엽니다.
터미널창에 아래 명령어를 입력합니다. <인스턴스 연결이름> 부분은 각자가 생성한 Cloud SQL 의 이름으로 수정하면 됩니다.
gcloud sql connect <인스턴스 연결이름> --user=root --quiet
$ gcloud sql connect demo-mysql --user=root --quiet
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
8. ssh 터널링으로 연결
ssh 터널링으로 Cloud SQL 에 접속하는 방법입니다.
ssh -L <Local Port>:<Cloud SQL IP>:<Cloud SQL Port> <username>@<SSH Server IP>
- Local Port : 로컬 서버의 Port(사용자고자 하는 임의의 Port)
- Cloud SQL IP : Cloud SQL 서버의 IP
- Cloud SQL Port : Cloud SQL의 Port( default Port : mysql 은 3306, MS SQL은 1433, PostgreSQL은 5432)
- username : SSH Server의 접속계정
- SSH Server IP : SSH Server IP Address
예) ssh -L 3309:10.122.225.100:3306 user1@34.64.227.33 처럼 명령어를 수행하면 SSH Server에 접속하면서 user1에 대한 패스워드를 묻게 되는데, 패스워드를 입력한 후 접속하면 SSH 터널링이 맺어진 상태가 됩니다.
터널링이 맺어진 상태에서 로컬 서버에서 Cloud SQL에 접속하려면 mysql 툴에 Hostname/IP 란에 localhost 또는 127.0.0.1 을 입력하고 Port에는 2209를 입력한 후 접속하면 접속이 정상적으로 이루어집니다.
SSH 터널링 설정 명령어
ssh -L <Local Port>:<Cloud SQL IP>:<Cloud SQL Port> <username>@<SSH Server IP>
9. Cloud SQL 인증 프록시 시작
Cloud SQL 인증 프록시를 사용하여 로컬 테스트 환경에서 Cloud SQL에 연결하는 방법을 보여줍니다. Cloud SQL 인증 프록시를 사용하면 승인된 네트워크나 SSL 구성 없이도 Cloud SQL 인스턴스에 액세스할 수 있습니다.
Cloud SQL Admin API를 사용 설정합니다.API 사용 설정
Cloud SQL 인스턴스 만들기
Google Cloud Console에서 인스턴스를 생성합니다.
- Google Cloud Console에서 Cloud SQL 인스턴스 페이지로 이동합니다. 좌측 햄버거 메뉴에서 "SQL" 을 클릭하던지 클라우드 콘솔 검색창에 sql을 입력하여 [제품 및 페이지]에서 SQL을 선택합니다.
- 인스턴스 만들기를 클릭합니다.
- MySQL을 클릭합니다.
- Compute API를 사용 설정하라는 메시지가 표시되면 API 사용 설정 버튼을 클릭합니다.
- 인스턴스 ID에 myinstance를 입력합니다.
- 루트 사용자의 비밀번호를 입력합니다.
- 다른 필드에는 기본값을 사용합니다.
- 만들기를 클릭합니다.참고: 이 예시에서는 공개 IP 주소를 포함한 기본 설정을 사용하여 인스턴스가 생성됩니다.
mysql 클라이언트 설치
본 문서에서는 Google VM instance OS인 Debian linux 에 설치합니다.
$ sudo apt-get install default-mysql-client
Cloud SQL 인증 프록시 클라이언트 설치
사용 중인 운영체제 및 운영체제가 사용하는 커널(32비트 또는 64비트)에 따라 다른 Cloud SQL 인증 프록시 바이너리를 다운로드합니다. 대부분의 최신 하드웨어는 64비트 커널을 사용합니다. 머신에서 32비트 커널을 실행 중인지 또는 64비트 커널을 실행 중인지 확실하지 않은 경우 Linux 또는 macOS에서 uname -a 명령어를 사용합니다. Windows의 경우 Windows 문서를 참조하세요.
본 문서에서는 GCP에 생성한 VM 인스턴스에 설치합니다.
sql proxy 서버로 사용할 새로운 VM instance를 생성하고 접속하여 아래 명령어를 수행합니다.
## wget 이 설치되어 있지 않을 경우 wget 설치
$ sudo apt install wget
$ wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
$ chmod +x cloud_sql_proxy
인스턴스 연결 이름 확인
Cloud SQL 인증 프록시에 접속할 인스턴스명을 확인하기 위해 Cloud SQL의 인스턴스 연결이름을 확인합니다.
본 문서에서는 advance-casing-340704:asia-northeast3:demo-mysql 이름을 사용합니다.
- Google Cloud Console에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스 이름을 클릭하여 개요 페이지를 엽니다.
- 인스턴스에 연결 섹션에서 연결 이름을 복사합니다. 연결 이름은 projectID:region:instanceID 형식입니다.
Cloud SQL 인증 프록시 시작
Cloud SQL 인증 프록시를 시작하기 위해 아래와 같은 명령어 형식을 사용합니다.
./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306
INSTANCE_CONNECTION_NAME은 이전 단계에서 확인한 인스턴스 연결 이름으로 바꿉니다.
Linux 환경의 경우 다음 명령어를 사용하여 Cloud SQL 인증 프록시를 시작합니다.
$ ./cloud_sql_proxy -instances=advance-casing-340704:asia-northeast3:demo-mysql=tcp:3306
2022/02/16 08:31:16 Rlimits for file descriptors set to {Current = 8500, Max = 1048576}
2022/02/16 08:31:17 errors parsing config:
googleapi: Error 403: Request had insufficient authentication scopes.
Details:
[
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"domain": "googleapis.com",
"metadata": {
"method": "google.cloud.sql.v1beta4.SqlConnectService.GetConnectSettings",
"service": "sqladmin.googleapis.com"
},
"reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT"
}
]
More details:
Reason: insufficientPermissions, Message: Insufficient Permission
위와 같이 Insufficient Permission 이 발생할 경우, VM 인스턴스를 중지한 후
Compute Engine > VM instance details > Identity and API access(api 및 ID 관리) 항목에서 서비스 계정의 액세스 범위를
또는 Identity and API access(api 및 ID 관리) 항목에서 "각 API에 액세스 설정" 선택 후 Cloud SQL 항목을 "사용 설정됨"으로 선택합니다.
googleapi: Error 403: The client is not authorized to make this request., notAuthorized
$ gcloud auth application-default login
You are running on a Google Compute Engine virtual machine.
The service credentials associated with this virtual machine
will automatically be used by Application Default
Credentials, so it is not necessary to use this command.
... ...
Do you want to continue (Y/n)? Y
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&state=jyPBenHBlKW9ZGmL090wTmjX5w63fI&prompt=consent&access_type=offline&code_challenge=VCXpHUS9G_Y0yEWPDuHZpgFhQsNV3UKBOoOSfuG5Qdc&code_challenge_method=S256
Enter verification code:
./cloud_sql_proxy \
-instances=advance-casing-340704:asia-northeast3:demo-mysql=tcp:3306 \
-credential_file=.config/gcloud/application_default_credentials.json
- advance-casing-340704:asia-northeast3:demo-mysql : Cloud SQL 인스턴스 connection 이름
- tcp:3306 : SQL Proxy 서버 Port
- credential_file : Cloud SQL 서버접속에 필요한 인증파일
- 서비스 계정 이름 : 원하는 서비스 계정 이름을 입력
- 서비스 게정 ID : 서비스 계정 이름에 따라 생성되므로 특별한 경우가 아니면 수정하지 않는다.
[만들고 계속하기] 버튼을 클릭합니다.
아래 화면이 나타나면 "역할 선택"을 클릭하고 "편집자"를 선택합니다. [계속] 버튼을 클릭합니다.
아래 화면이 나타나면 "서비스 계정 관리자 역할" 텍스트 박스에 GCP 계정을 입력합니다. 선택사항이므로 입력을 하지 않아도 됩니다. [완료] 버튼을 클릭합니다.
생성된 서비스 계정을 클릭한 후 "키" 탭을 클릭합니다. "키 추가" drop-down 리스트 박스를 클릭한 후 "새 키 만들기"를 클릭합니다.
아래 화면이 나오면 원하는 방식의 키 유형을 선택한 후 [만들기]를 클릭합니다.
./cloud_sql_proxy -instances=advance-casing-340704:asia-northeast3:demo-mysql=tcp:10.178.0.2:3306 -credential_file=/home/ypjeong/.config/gcloud/application_default_credentials.json
다음과 유사한 메시지가 나타납니다.
Listening on 127.0.0.1:3306 for INSTANCE_CONNECTION_NAME
Ready for new connections
만일, 프록시 서버의 IP 또는 프록시 서버의 local IP로 Cloud SQL DB 접속이 가능하게 하려면, 아래처럼 instances에 나열해 주면 됩니다. 마지막의 '&' 문자는 백그라운드로 실행하라는 명령문입니다. foreground로 실행하려면 '&' 문자를 없애고 실행하면 됩니다.
./cloud_sql_proxy \
-instances=advance-casing-340704:asia-northeast3:demo-mysql=tcp:3306,advance-casing-340704:asia-northeast3:demo-mysql=tcp:10.178.0.2:3306 \
-credential_file=.config/gcloud/application_default_credentials.json &
** 참고 **
위와 같이 실행한 경우 sql proxy 를 수행한 화면에 접속 log 등이 출력됩니다. 이를 최소화 하려면 아래 방법을 사용합니다.
cloud_sql_proxy --quiet
cloud_sql_proxy -verbose=false
cloud_sql_proxy -log_debug_stdout > /dev/null
quiet : 로그 메시지를 비활성화합니다(예: 새 연결이 설정된 경우). 경고: 이 옵션은 모든 로깅 출력(연결 오류 포함)을 비활성화하여 디버깅을 어렵게 만들 수 있습니다. -quiet 플래그는 -verbose 플래그보다 우선합니다.
verbose : 명시적으로 false로 설정하면 오류나 최초 시작 메시지가 아닌 로그 메시지를 비활성화합니다(예: 새 연결이 설정된 경우).
또는 오류 없이 닫힙니다).
log_debug_stdout : 이것은 표준 오류 대신 표준 출력에 오류가 아닌 출력을 기록하기 위한 것입니다. 예를 들어 연결 관련 메시지가 오류로 기록되지 않도록 하려면 이 플래그를 true로 설정하십시오. 기본값은 false입니다.
아래 명령어로 프록시 프로세스가 Listen하고 있는지 확인합니다.
위에서 수행한 instances 목록에 기술된대로 로컬 loopback IP와 Private IP에 포트가 할당되어 LISTEN 하고 있는 것을 확인할 수 있습니다.
$ netstat -ntlp | grep 3306
tcp 0 0 10.178.0.2:3306 0.0.0.0:* LISTEN 1166/./cloud_sql_pr
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1166/./cloud_sql_pr
SQL proxy server에서 아래 명령어를 수행하면 Cloud SQL DB로 접속할 수 있습니다.
$ mysql -u root -p --host 127.0.0.1 --port 3306
또는
$ mysql -u root -p --host 10.178.0.2 --port 3306
Enter password: 프롬프트에서 MySQL 루트 사용자 계정의 비밀번호를 입력합니다.
MySQL 프롬프트가 표시되는지 확인합니다. mysql 클라이언트를 사용하여 데이터베이스에 연결했습니다.
Cloud SQL 인증 프록시를 시작한 터미널 창으로 돌아갑니다.
'GCP > Cloud SQL' 카테고리의 다른 글
Monitoring slow queries in MySQL with Cloud Logging and Monitoring (0) | 2022.02.18 |
---|