Невозможно вставить в таблицу в режиме только для чтения

Я получаю исключение ниже, когда пытаюсь вставить записи в базу данных clickhouse:

Исключение:

Code: 164, e.displayText() = DB::Exception: Cannot insert into table in readonly mode, e.what() = DB::Exception

Пакет узла:

https://www.npmjs.com/package/clickhouse

Код подключения:

const clickhouse = new ClickHouse({
url: 'http://localhost',
port: 8123,
debug: true,
database: 'mydb',
basicAuth: 'default',
username: '',
password: '',
isUseGzip: false,
config: {
    session_timeout                         : 60,
    output_format_json_quote_64bit_integers : 0,
    enable_http_compression                 : 0
},

});

Схема таблицы:

CREATE TABLE logs_1 ( trid UInt64,  date UInt32,  email String) ENGINE = Log;

person Ashish Tiwari    schedule 09.03.2019    source источник
comment
Ваша база данных находится в режиме только для чтения. Почему бы тебе не пойти и не прочитать документацию? Возможно, это поможет clickhouse.yandex/docs/en/operations/settings/ < / а>   -  person Molda    schedule 09.03.2019
comment
Я не знаю, как вставить в любую другую базу данных, которая сейчас находится в режиме только для чтения. Это невозможно. Ваш вопрос непонятен - вы хотите спросить, как перевести базу данных в нормальный режим?   -  person Victor Perov    schedule 10.03.2019
comment
@victor да, это может помочь   -  person Ashish Tiwari    schedule 10.03.2019
comment
@victor да, это может помочь   -  person Ashish Tiwari    schedule 10.03.2019
comment
Итак, если проблема на стороне сервера, убедитесь, что вы настроили базу данных с указаниями (подробности см. В clickhouse.yandex) ), и вы пытаетесь записать в нереплицируемую таблицу, или если да, то ваш Zookeeper установлен правильно. Clickhouse не позволит вам писать в реплицированную таблицу, если Zookeeper не настроен.   -  person Victor Perov    schedule 10.03.2019
comment
из вашего вопроса неясно, какой запрос вы пытаетесь выполнить, и logs_1 правильная таблица (я вижу, что вы используете механизм журнала, который не реплицируется)   -  person Victor Perov    schedule 10.03.2019


Ответы (1)


Возможные причины:

  • вы подключаетесь к ClickHouse с помощью пользователя, для которого в настройках / профиле пользователя установлен флаг только для чтения.
  • вы пытаетесь вставить данные, используя запрос GET вместо POST (возможно, не ваш случай, если вы используете эту библиотеку)
  • вы вставляете в реплицированную таблицу, а сервер не имеет подключения к zookeeper (не ваш случай, поскольку вы вставляете в нереплицированную таблицу с помощью механизма журнала)

Поэтому, пожалуйста, проверьте настройки пользователя и профиля по умолчанию. Скорее всего, он содержит флаг только для чтения.

person filimonov    schedule 11.03.2019
comment
Использование GET insted из POST было моей проблемой. Очень полезный ответ. - person Olga; 25.05.2020