> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Устранение неполадок

> Руководство по устранению неполадок при установке

<div id="installation">
  ## Установка
</div>

<div id="cant-import-gpg-keys-from-keyserverubuntucom-with-apt-key">
  ### Не удаётся импортировать ключи GPG с keyserver.ubuntu.com с помощью apt-key
</div>

Возможность `apt-key` в [Advanced package tool (APT) объявлена устаревшей](https://manpages.debian.org/bookworm/apt/apt-key.8.en.html). Вместо неё следует использовать команду `gpg`. См. статью [руководство по установке](/ru/get-started/setup/install).

<div id="cant-import-gpg-keys-from-keyserverubuntucom-with-gpg">
  ### Не удаётся импортировать GPG-ключи с keyserver.ubuntu.com с помощью gpg
</div>

1. Проверьте, установлен ли у вас `gpg`:

```shell theme={null}
sudo apt-get install gnupg
```

<div id="cant-get-deb-packages-from-clickhouse-repository-with-apt-get">
  ### Не удается получить deb-пакеты из репозитория ClickHouse с помощью apt-get
</div>

1. Проверьте настройки брандмауэра.
2. Если по какой-либо причине доступ к репозиторию недоступен, загрузите пакеты, как описано в статье [руководство по установке](/ru/get-started/setup/install), и установите их вручную с помощью команды `sudo dpkg -i <packages>`. Также потребуется пакет `tzdata`.

<div id="cant-update-deb-packages-from-clickhouse-repository-with-apt-get">
  ### Не удаётся обновить deb-пакеты из репозитория ClickHouse с помощью apt-get
</div>

Проблема может возникнуть, если был изменён GPG-ключ.

Чтобы обновить конфигурацию репозитория, воспользуйтесь инструкцией на странице [setup](/ru/get-started/setup/self-managed/debian-ubuntu).

<div id="you-get-different-warnings-with-apt-get-update">
  ### При выполнении `apt-get update` вы получаете разные предупреждения
</div>

Полный текст предупреждения может выглядеть следующим образом:

```shell theme={null}
N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://packages.clickhouse.com/deb stable InRelease' doesn't support architecture 'i386'
```

```shell theme={null}
E: Failed to fetch https://packages.clickhouse.com/deb/dists/stable/main/binary-amd64/Packages.gz  File has unexpected size (30451 != 28154). Mirror sync in progress?
```

```shell theme={null}
E: Repository 'https://packages.clickhouse.com/deb stable InRelease' changed its 'Origin' value from 'Artifactory' to 'ClickHouse'
E: Repository 'https://packages.clickhouse.com/deb stable InRelease' changed its 'Label' value from 'Artifactory' to 'ClickHouse'
N: Repository 'https://packages.clickhouse.com/deb stable InRelease' changed its 'Suite' value from 'stable' to ''
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
```

```shell theme={null}
Err:11 https://packages.clickhouse.com/deb stable InRelease
400  Bad Request [IP: 172.66.40.249 443]
```

Чтобы устранить эту проблему, используйте следующий скрипт:

```shell theme={null}
sudo rm /var/lib/apt/lists/packages.clickhouse.com_* /var/lib/dpkg/arch /var/lib/apt/lists/partial/packages.clickhouse.com_*
sudo apt-get clean
sudo apt-get autoclean
```

<div id="cant-get-packages-with-yum-because-of-wrong-signature">
  ### Не удаётся получить пакеты через Yum из-за неверной подписи
</div>

Возможная причина: кэш некорректен — возможно, он был повреждён после обновления GPG-ключа в 2022-09.

Решение: очистить кэш и каталог lib для Yum:

```shell theme={null}
sudo find /var/lib/yum/repos/ /var/cache/yum/ -name 'clickhouse-*' -type d -exec rm -rf {} +
sudo rm -f /etc/yum.repos.d/clickhouse.repo
```

После этого следуйте инструкциям в [руководстве по установке](/ru/get-started/setup/self-managed/redhat)

<div id="connecting-to-the-server">
  ## Подключение к серверу
</div>

Возможные проблемы:

* Сервер не запущен.
* Неверные или неожиданные параметры конфигурации.

<div id="server-is-not-running">
  ### Сервер не запущен
</div>

<div id="check-if-server-is-running">
  #### Проверьте, запущен ли сервер
</div>

```shell theme={null}
sudo service clickhouse-server status
```

Если сервер не запущен, запустите его командой:

```shell theme={null}
sudo service clickhouse-server start
```

<div id="check-the-logs">
  #### Проверьте журналы
</div>

Основной журнал `clickhouse-server` по умолчанию находится в `/var/log/clickhouse-server/clickhouse-server.log`.

Если сервер успешно запустился, вы должны увидеть строки:

* `<Information> Application: starting up.` — Сервер запустился.
* `<Information> Application: Ready for connections.` — Сервер работает и готов принимать подключения.

Если `clickhouse-server` не удалось запустить из-за ошибки в конфигурации, вы должны увидеть строку `<Error>` с описанием ошибки. Например:

```plaintext theme={null}
2019.01.11 15:23:25.549505 [ 45 ] {} <Error> ExternalDictionaries: Failed reloading 'event2id' external dictionary: Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused, e.what() = Connection refused
```

Если в конце файла нет ошибки, просмотрите весь файл, начиная со строки:

```plaintext theme={null}
<Information> Application: starting up.
```

Если вы попытаетесь запустить на сервере второй экземпляр `clickhouse-server`, вы увидите следующую запись в журнале:

```plaintext theme={null}
2019.01.11 15:25:11.151730 [ 1 ] {} <Information> : Starting ClickHouse 19.1.0 with revision 54413
2019.01.11 15:25:11.154578 [ 1 ] {} <Information> Application: starting up
2019.01.11 15:25:11.156361 [ 1 ] {} <Information> StatusFile: Status file ./status already exists - unclean restart. Contents:
PID: 8510
Started at: 2019-01-11 15:24:23
Revision: 54413

2019.01.11 15:25:11.156673 [ 1 ] {} <Error> Application: DB::Exception: Cannot lock file ./status. Another server instance in same directory is already running.
2019.01.11 15:25:11.156682 [ 1 ] {} <Information> Application: shutting down
2019.01.11 15:25:11.156686 [ 1 ] {} <Debug> Application: Uninitializing subsystem: Logging Subsystem
2019.01.11 15:25:11.156716 [ 2 ] {} <Information> BaseDaemon: Stop SignalListener thread
```

<div id="see-systemd-logs">
  #### Просмотр журналов system.d
</div>

Если в журналах `clickhouse-server` нет полезной информации или они вообще отсутствуют, вы можете просмотреть журналы `system.d` с помощью команды:

```shell theme={null}
sudo journalctl -u clickhouse-server
```

<div id="start-clickhouse-server-in-interactive-mode">
  #### Запустите clickhouse-server в интерактивном режиме
</div>

```shell theme={null}
sudo -u clickhouse /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml
```

Эта команда запускает сервер в интерактивном режиме со стандартными параметрами скрипта автозапуска. В этом режиме `clickhouse-server` выводит все сообщения о событиях в консоль.

<div id="configuration-parameters">
  ### Параметры конфигурации
</div>

Проверьте:

1. Настройки Docker:

   * Если вы запускаете ClickHouse в Docker в сети IPv6, убедитесь, что установлено `network=host`.

2. Настройки конечной точки.
   * Проверьте настройки [listen\_host](/ru/reference/settings/server-settings/settings#listen_host) и [tcp\_port](/ru/reference/settings/server-settings/settings#tcp_port).
   * По умолчанию ClickHouse server принимает подключения только с localhost.

3. Настройки HTTP-протокола:

   * Проверьте настройки протокола для HTTP API.

4. Настройки защищённого подключения.

   * Проверьте:
     * Настройку [tcp\_port\_secure](/ru/reference/settings/server-settings/settings#tcp_port_secure).
     * Настройки [SSL certificates](/ru/reference/settings/server-settings/settings#openssl).
   * При подключении используйте правильные параметры. Например, используйте параметр `port_secure` с `clickhouse_client`.

5. Настройки пользователя:

   * Возможно, вы используете неверное имя пользователя или пароль.

<div id="query-processing">
  ## Обработка запросов
</div>

Если ClickHouse не может обработать запрос, он отправляет клиенту описание ошибки. В `clickhouse-client` описание ошибки выводится в консоли. Если вы используете HTTP-интерфейс, ClickHouse отправляет описание ошибки в теле ответа. Например:

```shell theme={null}
$ curl 'http://localhost:8123/' --data-binary "SELECT a"
Code: 47, e.displayText() = DB::Exception: Unknown identifier: a. Note that there are no tables (FROM clause) in your query, context: required_names: 'a' source_tables: table_aliases: private_aliases: column_aliases: public_columns: 'a' masked_columns: array_join_columns: source_columns: , e.what() = DB::Exception
```

Если запустить `clickhouse-client` с параметром `stack-trace`, ClickHouse вернёт трассировку стека сервера с описанием ошибки.

Вы можете увидеть сообщение о разорванном соединении. В этом случае запрос можно повторить. Если соединение разрывается при каждом выполнении запроса, проверьте серверные журналы на наличие ошибок.

<div id="efficiency-of-query-processing">
  ## Эффективность обработки запросов
</div>

Если вы видите, что ClickHouse работает слишком медленно, нужно профилировать нагрузку, которую ваши запросы создают на ресурсы сервера и сеть.

Для профилирования запросов можно использовать утилиту clickhouse-benchmark. Она показывает количество запросов, обрабатываемых в секунду, количество строк, обрабатываемых в секунду, а также процентили времени выполнения запросов.
