MySQL용 Cloud SQL 기능

이 페이지에서는 MySQL용 Cloud SQL의 주요 특징과 기능을 설명합니다. Cloud SQL은 PostgreSQLSQL Server에도 사용할 수 있습니다.

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 인스턴스에 연결할 수 있습니다.

비공개 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에서 지원되지 않습니다.

  • SUPER 권한

다음 기능은 MySQL용 Cloud SQL 8.0에서 지원되지 않습니다.

다음 기능은 MySQL용 Cloud SQL 8.4에서 지원되지 않습니다.

또한 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';

usernameuser_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 구성만 지원합니다.