MySQL 인터페이스
ClickHouse는 MySQL wire 프로토콜을 지원합니다. 이를 통해 기본 ClickHouse 커넥터가 없는 일부 클라이언트도 MySQL 프로토콜을 대신 활용할 수 있으며, 다음 BI 도구와 함께 동작하는 것으로 검증되었습니다:
아직 테스트되지 않은 다른 클라이언트나 통합을 사용하려는 경우, 다음과 같은 제한 사항이 있을 수 있음을 유의해야 합니다:
- SSL 구현이 완전히 호환되지 않을 수 있으며, 잠재적인 TLS SNI 관련 문제가 발생할 수 있습니다.
- 특정 도구에서 아직 ClickHouse에 구현되지 않은 SQL 방언 기능(예: MySQL 전용 함수나 설정)을 요구할 수 있습니다.
네이티브 드라이버가 제공되는 경우(예: DBeaver)에는 항상 MySQL 인터페이스 대신 해당 드라이버를 사용하는 것이 바람직합니다. 또한 대부분의 MySQL 클라이언트는 정상적으로 동작하지만, MySQL 인터페이스가 기존 MySQL 쿼리를 사용하는 코드베이스에 대해 완전한 대체(drop-in replacement)가 된다고 보장되지는 않습니다.
특정 도구에 네이티브 ClickHouse 드라이버가 없어 MySQL 인터페이스를 통해 사용하려는 상황에서 호환성 문제가 발견된 경우, ClickHouse 저장소에 이슈를 생성해 주십시오.
위 BI 도구들의 SQL 방언을 더 잘 지원하기 위해, ClickHouse의 MySQL 인터페이스는 SELECT 쿼리를 설정 prefer_column_name_to_alias = 1과 함께 암묵적으로 실행합니다. 이는 비활성화할 수 없으며, 드문 엣지 케이스에서는 ClickHouse의 일반 쿼리 인터페이스와 MySQL 쿼리 인터페이스로 전송된 쿼리 간에 서로 다른 동작을 초래할 수 있습니다.
ClickHouse Cloud에서 MySQL 인터페이스 활성화
- ClickHouse Cloud 서비스를 생성한 후
Connect버튼을 클릭합니다.

Connect with드롭다운 메뉴를MySQL로 변경합니다.

- 토글 스위치를 전환하여 이 서비스에 대해 MySQL 인터페이스를 활성화합니다. 이렇게 하면 이 서비스에서 포트
3306이 노출되며, 고유한 MySQL 사용자 이름이 포함된 MySQL 연결 화면이 표시됩니다. 비밀번호는 서비스 기본 사용자 계정의 비밀번호와 동일합니다.

표시된 MySQL 연결 문자열을 복사합니다.

ClickHouse Cloud에서 여러 MySQL 사용자 생성
기본적으로 default 사용자와 동일한 비밀번호를 사용하는 mysql4<subdomain>라는 내장 사용자가 있습니다. <subdomain> 부분은 ClickHouse Cloud 호스트명의 첫 번째 세그먼트입니다. 이 형식은 보안 연결은 사용하지만 TLS 핸드셰이크에서 SNI 정보를 제공하지 않는 도구와 함께 작동하기 위해 필요합니다. 이러한 도구의 경우 사용자 이름에 추가 힌트가 없으면 내부 라우팅을 수행할 수 없습니다(MySQL 콘솔 클라이언트가 그러한 도구 중 하나입니다).
이러한 이유로 MySQL 인터페이스에서 사용할 새 사용자를 생성할 때 mysql4<subdomain>_<username> 형식을 따를 것을 강력히 권장합니다. 여기서 <subdomain>은 Cloud 서비스 식별을 위한 힌트이고, <username>은 임의로 선택하는 접미사입니다.
ClickHouse Cloud 호스트명이 foobar.us-east1.aws.clickhouse.cloud인 경우 <subdomain> 부분은 foobar이며, 사용자 지정 MySQL 사용자 이름은 mysql4foobar_team1과 같이 지정할 수 있습니다.
예를 들어 추가 설정을 적용해야 하는 경우 MySQL 인터페이스와 함께 사용할 추가 사용자를 생성할 수 있습니다.
-
선택 사항: 사용자 정의 사용자에 적용할 settings profile을 생성합니다. 예를 들어, 나중에 생성하는 사용자로 접속할 때 기본적으로 적용될 추가 설정이 포함된
my_custom_profile을 생성할 수 있습니다:prefer_column_name_to_alias는 단순한 예시일 뿐이며, 여기에 다른 설정을 사용할 수도 있습니다. -
다음 형식을 사용하여 사용자를 생성합니다:
mysql4<subdomain>_<username>(위 설명 참조). 비밀번호는 double SHA1 형식이어야 합니다. 예를 들어:또는 이 사용자에 대해 사용자 지정 프로필을 사용하려는 경우:
여기서
my_custom_profile은 이전에 생성한 프로필의 이름입니다. -
새 사용자에게 원하는 테이블이나 데이터베이스와 상호 작용하는 데 필요한 권한을 부여합니다. 예를 들어
system.query_log에만 접근 권한을 부여하려는 경우: -
생성한 사용자를 사용하여 MySQL 인터페이스를 통해 ClickHouse Cloud 서비스에 연결합니다.
ClickHouse Cloud에서 여러 MySQL 사용자 문제 해결
새 MySQL 사용자를 생성한 뒤 MySQL CLI 클라이언트로 접속할 때 다음 오류가 발생하는 경우:
이 경우 사용자 이름이 mysql4<subdomain>_<username> 형식을 따르도록, (위)에서 설명한 대로 설정하십시오.
자가 관리형 ClickHouse에서 MySQL 인터페이스 활성화
서버 구성 파일에 mysql_port 설정을 추가합니다. 예를 들어 config.d/ 폴더에 새 XML 파일을 만들어 포트 번호를 정의할 수 있습니다.
ClickHouse 서버를 시작한 후, 「Listening for MySQL compatibility protocol」이라는 내용이 포함된 아래와 유사한 로그 메시지를 확인하십시오.
MySQL을 ClickHouse에 연결하기
다음 명령은 MySQL 클라이언트 mysql을 사용해 ClickHouse에 연결하는 방법을 보여줍니다.
예를 들어:
연결에 성공하면 다음과 같은 출력이 표시됩니다:
모든 MySQL 클라이언트와의 호환성을 위해 설정 파일에서 double SHA1로 사용자 비밀번호를 지정할 것을 권장합니다. 사용자 비밀번호를 SHA256으로 지정하면 일부 클라이언트(mysqljs 및 구버전 MySQL, MariaDB 명령줄 도구)는 인증을 수행하지 못합니다.
제한 사항:
-
prepared 쿼리는 지원되지 않습니다
-
일부 데이터 타입은 문자열로 전송됩니다
긴 쿼리를 취소하려면 KILL QUERY connection_id 문을 사용합니다(처리되는 동안 KILL QUERY WHERE query_id = connection_id로 대체됩니다). 예를 들어: