Cloud SQL 버전의 MySQL 기능
MySQL용 Cloud SQL의 Cloud SQL Enterprise Plus 버전과 Cloud SQL Enterprise 버전의 기능에 대한 자세한 내용은 Cloud SQL 버전 소개를 참조하세요.
Cloud SQL에서 지원되는 일반 MySQL 기능
- 클라우드의 완전 관리형 MySQL Community Edition 데이터베이스
- 미주, EU, 아시아, 오스트레일리아에서 사용 가능한 인스턴스. Cloud SQL 인스턴스를 만들 수 있는 모든 위치를 참조하세요.
- Database Migration Service(DMS)를 사용하여 소스 데이터베이스에서 Cloud SQL 대상 데이터베이스로 마이그레이션을 지원함
- Google의 내부 네트워크와 데이터베이스 테이블, 임시 파일, 백업에서 암호화되는 고객 데이터
- Cloud SQL 인증 프록시 또는 SSL/TLS 프로토콜을 사용한 보안 외부 연결 지원
- 비공개 IP(비공개 서비스 액세스) 지원
- 자동 장애 조치로 여러 영역 간에 데이터 복제*
mysqldump
를 사용한 데이터베이스 가져오기와 내보내기 또는 CSV 파일 가져오기와 내보내기- MySQL 유선 프로토콜 및 표준 MySQL 커넥터 지원
- 자동 백업, 주문형 백업, PITR(point-in-time recovery)
- 인스턴스 클론
- Google Cloud Observability 로깅 및 모니터링과 통합
- ISO/IEC 27001 준수
* 멕시코, 몬트리올, 오사카 리전은 1~2개의 물리적 데이터 센터에 영역 3개가 있습니다. 이러한 리전은 최소 3개의 물리적 데이터 센터로 확장 중입니다. 자세한 내용은 클라우드 위치 및 Google Cloud Platform SLA를 참고하세요. 워크로드의 안정성을 개선하려면 멀티 리전 배포를 고려하세요.
MySQL용 Cloud SQL에서 지원되는 애플리케이션 언어
Cloud SQL은 다음 언어로 작성된 가변형 환경에서 실행되는 App Engine 애플리케이션과 함께 사용할 수 있습니다.
- C#
- Go
- 자바
- Node.js
- PHP
- Python
- Ruby
Cloud SQL을 표준 MySQL 프로토콜을 사용하는 외부 애플리케이션과 함께 사용할 수도 있습니다.
MySQL용 Cloud SQL 인스턴스에 연결하는 방법
다음 항목에서 Cloud SQL 인스턴스에 연결할 수 있습니다.
mysql
클라이언트- SQL Workbench 또는 Toad for MySQL와 같은 서드 파티 도구
- 외부 애플리케이션
- App Engine 애플리케이션
- Compute Engine에서 실행되는 애플리케이션.
- Google Kubernetes Engine에서 실행되는 애플리케이션
- Cloud Run Functions
- Cloud Run
- Google Apps Script 스크립트
비공개 Google 액세스로는 Cloud SQL에 연결할 수 없습니다. 비공개 서비스 액세스가 지원됩니다. 자세한 내용은 서비스 비공개 액세스 옵션을 참조하세요.
MySQL용 Cloud SQL 8.0에서 사용자 관리
MySQL 8.0의 변경사항으로 인해 MySQL 사용자 관리에 CREATE
또는 DELETE
문을 사용할 수 없습니다. INSERT
, UPDATE
, DELETE
문을 사용하여 사용자 권한을 수정할 수도 없습니다. 대신 CREATE USER
, DROP USER
, GRANT
, REVOKE
문을 사용하여 사용자 권한을 수정합니다. 자세한 내용은 계정 관리 참고사항을 참조하세요.
참고: 계정 관리 참고사항에서 mysql_upgrade
를 실행하여 버전 8.0으로 업그레이드에 대한 정보는 무시하세요. 대신 인스턴스에서 MySQL 업그레이드의 절차에 따라 업그레이드하세요.
표준 MySQL 및 MySQL용 Cloud SQL 간의 차이점
일반적으로 Cloud SQL 인스턴스에서 제공하는 MySQL 기능은 로컬에서 호스팅되는 MySQL 인스턴스가 제공하는 기능과 동일합니다. 하지만 표준 MySQL 인스턴스와 Cloud SQL 인스턴스에는 몇 가지 차이점이 있습니다.
Cloud SQL에서 지원되지 않는 MySQL 기능
다음 기능은 MySQL용 Cloud SQL 5.6 및 5.7에서 지원되지 않습니다.
다음 기능은 MySQL용 Cloud SQL 8.0에서 지원되지 않습니다.
다음 기능은 MySQL용 Cloud SQL 8.4에서 지원되지 않습니다.
- 태그된 GTID 태그된 GTID에 대한 자세한 내용은 MySQL 8.4 출시 노트의 MySQL 8.4에서 추가되거나 변경된 기능 섹션에 있는 'MySQL 복제: 태그된 GTID'를 참조하세요.
또한 MySQL용 Cloud SQL은 MySQL 8.4에 도입된 다음 권한을 부여하지 않습니다.
Cloud SQL에서 지원되지 않는 MySQL 플러그인
Cloud SQL에서 지원되지 않는 MySQL 문
다음 SQL 문은 Error 1290:
The MySQL server is running with the Google option so it cannot execute this
statement
메시지와 함께 오류를 생성합니다.
LOAD DATA INFILE
SELECT ... INTO OUTFILE
SELECT ... INTO DUMPFILE
INSTALL PLUGIN ...
UNINSTALL PLUGIN
CREATE FUNCTION ... SONAME ...
MySQL 인스턴스에서는 GTID 복제를 사용하므로 다음 문은 지원되지 않습니다.
CREATE TABLE ... SELECT
문- 트랜잭션 및 비트랜잭션 테이블을 모두 업데이트하는 트랜잭션이나 문
다음 MySQL 문은 MySQL용 Cloud SQL 5.6 및 5.7에서 지원되지 않지만 MySQL용 Cloud SQL 8.0에서는 지원됩니다.
- 트랜잭션 내
CREATE TEMPORARY TABLE
문
자세한 내용은 MySQL 문서를 참조하세요.
Cloud SQL에서 지원되지 않는 MySQL 함수
LOAD_FILE()
Cloud SQL에서 지원되지 않는 MySQL 클라이언트 프로그램 기능
--tab
옵션 또는--tab
과 함께 사용되는 옵션을 사용하는mysqldump
. 인스턴스 사용자에게 FILE 권한이 부여되지 않기 때문입니다. 다른 모든mysqldump
옵션은 지원됩니다. Cloud SQL로 가져오기 위해 파일을 최적화하는mysqldump
옵션을 사용하는 방법에 대한 자세한 내용은 mysqldump를 사용하여 로컬 MySQL 서버에서 내보내기를 참조하세요.--local
옵션을 사용하지 않는mysqlimport
.LOAD DATA INFILE
제한 때문입니다. Cloud SQL 인스턴스로 데이터를 가져오려면 덤프 파일을 사용하여 가져오기 또는 CSV 파일을 사용하여 가져오기를 참조하세요.바이너리 데이터가 있는 데이터베이스를 Cloud SQL 인스턴스로 가져오려면
mysqldump
에--hex-blob
옵션을 사용해야 합니다.hex-blob
은 로컬 MySQL 서버 인스턴스 및mysql
클라이언트를 사용할 때 필요한 플래그가 아니지만, 바이너리 데이터가 있는 데이터베이스를 Cloud SQL 인스턴스로 가져오려는 경우에 필요합니다. Cloud SQL 인스턴스로 데이터를 가져오려면 덤프 파일을 사용하여 가져오기 또는 CSV 파일을 사용하여 가져오기를 참조하세요.일부 MySQL 옵션과 매개변수는 Cloud SQL 플래그로 수정할 수 없습니다.
구성 가능한 Cloud SQL 플래그를 추가로 요청하려면 Cloud SQL 토론방을 사용합니다.
스토리지 엔진으로 InnoDB만 지원됩니다. MyISAM에서 InnoDB로 테이블을 변환하는 방법에 대한 도움이 필요하면 MySQL 문서의 테이블을 InnoDB로 변환을 참조하세요.
Cloud SQL에 사전 설정된 MySQL 옵션
Cloud SQL은 MySQL을 특정 옵션 세트와 함께 실행합니다. 특정 옵션이 애플리케이션의 작동 방법에 영향을 미칠 수 있는 경우, 사용자가 참고할 수 있도록 여기에 언급합니다.
skip-name-resolve
이 플래그는 클라이언트 연결을 위해 호스트 이름을 확인하는 방법에 영향을 미칩니다. MySQL 문서의 skip-name-resolve
를 참조하세요.
log_bin
이 플래그는 바이너리 로깅이 사용 설정되었는지 여부를 보고합니다. --log-bin
옵션을 사용하는 경우 이 변수의 값은 ON
입니다. 그렇지 않으면 OFF
입니다. MySQL 문서의 log_bin
을 참조하세요.
MySQL 인증
이 섹션에서는 MySQL 기본 제공 인증 변경사항을 설명합니다.
MySQL 8.0 인증 플러그인 기본값
MySQL용 Cloud SQL 8.0에서는 신규 사용자의 기본 인증 플러그인으로 caching_sha2_password
대신 mysql_native_password
가 사용됩니다. mysql_native_password
플러그인은 MySQL 5.6 및 5.7 사용자의 기본값입니다.
신규 사용자가 caching_sha2_password
플러그인을 기본 인증으로 사용하도록 하려면 default_authentication_plugin
에서 caching_sha2_password
를 사용하도록 인스턴스 플래그를 구성합니다.
기존 사용자가 caching_sha2_password
를 사용하도록 구성하려면 ALTER USER
명령어를 사용하여 인증 플러그인을 변경합니다.
caching_sha2_password
인증이 있는 사용자는 연결 시 get-server-public-key
플래그를 사용해야 할 수 있습니다. 자세한 내용은 MySQL 문서의 SHA-2 플러그인 인증 캐싱을 참고하세요.
MySQL 8.4 인증 플러그인 기본값
MySQL용 Cloud SQL 8.4부터 caching_sha2_password
플러그인이 기본 인증 플러그인입니다.
모든 내부 사용자와 개발자가 만든 새 사용자 계정은 인증에 caching_sha2_password
플러그인을 사용합니다. MySQL용 Cloud SQL 8.4는 mysql_native_password
플러그인을 사용하는 기존 Cloud SQL 사용자 계정을 계속 지원합니다. 이러한 기존 계정은 인스턴스가 MySQL 8.4로 업그레이드된 후에도 MySQL용 Cloud SQL 인스턴스에 계속 연결할 수 있습니다.
MySQL용 Cloud SQL 8.4에서는 mysql_native_password
인증 플러그인이 지원 중단되었습니다.
지원 중단된 mysql_native_password
인증 플러그인으로 새 사용자 계정을 만들려고 하면 오류가 발생합니다.
mysql_native_password
를 사용하도록 MySQL용 Cloud SQL 8.4에서 계정의 authentication_policy
를 설정할 수 없습니다.
caching_sha2_password
인증 플러그인을 사용하도록 기존 데이터베이스 사용자 계정을 변경하려면 다음 명령어를 사용합니다.
ALTER USER 'username'@'%' IDENTIFIED WITH caching_sha2_password BY 'user_password';
username 및 user_password를 업데이트하려는 사용자 계정의 값으로 바꿉니다.
이 변경사항이 서버, 클라이언트, 커넥터 간의 호환성에 미치는 영향에 대한 자세한 내용은 caching_sha2_password as the Preferred Authentication Plugin
을 참조하세요.
Cloud SQL의 MySQL 시스템 플래그 변경사항
일부 MySQL 시스템 플래그의 경우 Cloud SQL에서 기본값과 다른 값을 사용합니다. 이러한 플래그 값은 변경할 수 없습니다. 플래그 목록은 Cloud SQL에서 변경된 시스템 플래그를 참조하세요.
MySQL용 Cloud SQL 8.0 이상 버전에서 지원되지 않는 Cloud SQL 기능
MySQL용 Cloud SQL 8.0 이상 버전에서는 장애 조치 복제본을 사용하는 기존 MySQL용 Cloud SQL 고가용성(HA) 구성을 지원하지 않습니다. MySQL용 Cloud SQL 8.0 이상 버전은 리전별 HA 구성만 지원합니다.