ClickHouse 서버·클라이언트 설치와 로컬 계정 설정을 정리했습니다. 원본의 기준 버전은 26.3입니다. 설정 파일 전체를 덮어쓰기보다 config.d·users.d의 추가 파일을 이용하고 설치 버전의 병합 결과를 확인합니다.
저장소와 패키지 설치
공식 RPM 저장소를 등록하고 서명 확인 설정을 유지합니다. 서버와 클라이언트의 설치 후보 버전을 먼저 확인합니다. 패치 버전은 배포 시점의 지원·보안 업데이트 정책에 맞춰 선택합니다.
sudo dnf config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
dnf list --showduplicates clickhouse-server clickhouse-client
sudo dnf install 'clickhouse-server-26.3.*' 'clickhouse-client-26.3.*'포트와 바인딩
/etc/clickhouse-server/config.d/listen.xml에 아래 예시를 작성합니다. HTTP와 native TCP 포트를 구분합니다. 로컬 검증 단계에서는 loopback으로 제한하고 외부 연동은 TLS와 접속망 정책을 준비한 뒤 추가합니다.
<clickhouse>
<listen_host>127.0.0.1</listen_host>
<http_port>18123</http_port>
<tcp_port>19000</tcp_port>
</clickhouse>관리자 암호와 계정
/etc/clickhouse-server/users.d/lieper.xml에 로컬 관리자 계정을 추가합니다. 먼저 다음 명령으로 새 암호의 SHA-256 해시를 만들고 아래 YOUR_GENERATED_SHA256_HASH를 출력된 64자리 값으로 바꿉니다. 실제 암호나 기존 해시를 문서에 저장하지 않습니다.
IFS= read -r -s -p '새 ClickHouse 암호: ' CLICKHOUSE_MANUAL_PASSWORD
printf '\n'
printf '%s' "$CLICKHOUSE_MANUAL_PASSWORD" | sha256sum
unset CLICKHOUSE_MANUAL_PASSWORD<clickhouse>
<users>
<lieper>
<password_sha256_hex>YOUR_GENERATED_SHA256_HASH</password_sha256_hex>
<networks><ip>127.0.0.1</ip></networks>
<profile>default</profile>
<quota>default</quota>
<access_management>1</access_management>
</lieper>
</users>
</clickhouse>이 계정은 계정 관리 권한을 가진 관리자 예시입니다. 애플리케이션은 별도 사용자와 필요한 권한만 사용합니다. XML 파일은 clickhouse 실행 계정이 읽을 수 있도록 제한하고, 기존 default 계정의 암호·접속망·관리 권한도 확인해 제한합니다. SQL로 관리하는 계정과 XML 계정의 적용 범위를 구분합니다.
서비스 시작과 검증
sudo systemctl enable --now clickhouse-server
sudo systemctl status clickhouse-server --no-pager
clickhouse-client --host 127.0.0.1 --port 19000 --user lieper --password
curl http://127.0.0.1:18123/ping클라이언트에서 SELECT version(), currentUser()를 확인하고 권한 범위를 시험합니다. 데이터 경로 변경은 원본에서도 미검증 메모였으므로 이 설치 절차에는 포함하지 않습니다. 실제 이전은 중지·백업·소유권·설정 병합·복원 검증 계획을 따로 작성합니다.