4장. 외부 MySQL 데이터베이스 구성
Red Hat 3scale API Management 배포에서 데이터베이스를 외부화하는 경우 애플리케이션 격리와 데이터베이스 수준의 서비스 중단에 대한 복원력을 제공합니다. 서비스 중단에 대한 복원력은 데이터베이스를 호스팅하는 인프라 또는 플랫폼 공급자가 제공하는 SLA(서비스 수준 계약)에 따라 달라집니다. 이는 3scale에서 제공되지 않습니다. 선택한 배포에서 제공하는 데이터베이스를 외부화하는 방법에 대한 자세한 내용은 관련 문서를 참조하십시오.
Red Hat은 외부 MySQL 데이터베이스를 사용하는 3scale 구성을 지원합니다. 그러나 데이터베이스 자체는 지원 범위에 포함되지 않습니다.
이 가이드에서는 MySQL 데이터베이스를 외부화하는 데 필요한 정보를 제공합니다. 이는 기본 system-mysql pod를 사용하여 네트워크 또는 파일 시스템과 같은 여러 인프라 문제가 있는 경우 유용합니다.
사전 요구 사항
- 관리자 권한이 있는 계정을 사용하여 OpenShift Container Platform 4.x 클러스터에 액세스할 수 있습니다.
- OpenShift 클러스터에 3scale 인스턴스 설치 OpenShift에 3scale API Management 설치를 참조하십시오.
- 외부 MySQL 데이터베이스 구성에 따라 구성된 외부(3scale 설치의 일부가 아닌) MySQL 데이터베이스입니다.
외부 MySQL 데이터베이스를 구성하려면 다음 섹션에 설명된 단계를 수행합니다.
4.1. 외부 MySQL 데이터베이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
외부 MySQL 데이터베이스를 만들 때 아래에 설명된 대로 구성해야 합니다.
MySQL 데이터베이스 사용자
외부 MySQL 데이터베이스에 대한 연결 문자열은 데이터베이스 연결을 구성하는 데 사용되는 연결 문자열입니다(연결 문자열을 구성할 위치를 알아보려면 시스템 데이터베이스 시크릿 참조)는 다음 형식이어야 합니다.
mysql2://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}
mysql2://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}
{DB_PASSWORD} 및 {DB_PORT} 는 선택 사항입니다.
사용자 이름이 {DB_USER} 인 사용자는 {DB_NAME} 로 표시된 데이터베이스에 모든 권한을 생성하고 부여해야 합니다. 사용자를 생성하는 명령의 예:
CREATE USER 'exampleuser'@'%' IDENTIFIED BY 'examplepass'; GRANT ALL PRIVILEGES ON exampledb.* to 'exampleuser'@'%';
CREATE USER 'exampleuser'@'%' IDENTIFIED BY 'examplepass';
GRANT ALL PRIVILEGES ON exampledb.* to 'exampleuser'@'%';
3scale을 새로 설치하는 경우 {DB_NAME} 데이터베이스가 없으면 설치 스크립트에 의해 생성됩니다.
바이너리 로깅 구성
MySQL 서버에서 바이너리 로깅이 활성화되어 있고 데이터베이스 사용자에게 SUPER 권한이 없는 경우 글로벌 시스템 변수 log_bin_trust_function_creators 를 1 로 설정해야 합니다. 이는 3scale에서 저장 프로시저 및 트리거를 사용하므로 필요합니다.
또는 데이터베이스 사용자에 대한 SUPER 권한을 설정하도록 선택하는 경우 MySQL 8.0에서 더 이상 사용되지 않으며 향후 MySQL 버전에서 제거됩니다. 자세한 내용은 MySQL 설명서 를 참조하십시오.