# 1 Скрипты создания базы данных

#### Обзор

База данных Zabbix должна быть создана в процессе установки Zabbix
сервера или прокси.

Этот раздел предлагает скрипты для создания базы данных Zabbix.
Отдельный скрипт схемы поставляется для каждой поддерживаемой базы
данных.

::: notetip
Файлы `schema.sql`, `images.sql` and `data.sql`
размещены в подпапке *database* исходных кодов Zabbix. Если Zabbix
установлен из распространяемых пакетов, обратитесь к документации
распространителя.
:::

::: noteimportant
Для базы данных Zabbix прокси необходимо
импортировать **только** `schema.sql` (без images.sql и
data.sql)
:::

\*\* Скрипты \*\*

#### MySQL

Мы полагаем, что пользователь *<username>* с паролем
*<password>* уже существует и имеет права на создание объектов.

    shell> mysql -u<username> -p<password>
    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> quit;
    shell> mysql -u<username> -p<password> zabbix < database/mysql/schema.sql
    # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
    shell> mysql -u<username> -p<password> zabbix < database/mysql/images.sql
    shell> mysql -u<username> -p<password> zabbix < database/mysql/data.sql

#### PostgreSQL

Мы полагаем, что пользователь *<username>* уже существует и имеет
права на создание объектов.

    shell> psql -U <username>
    psql> create database zabbix; 
    psql> \q 
    shell> cd database/postgresql
    shell> psql -U <username> zabbix < schema.sql
    # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
    shell> psql -U <username> zabbix < images.sql
    shell> psql -U <username> zabbix < data.sql

#### Oracle

Мы полагаем, что пользователь *zabbix* базы данных с паролем *password*
уже существует и имеет права на создание объектов в ORCL службе,
расположенной на *хост* сервере базы данных Oracle c shell пользователем
*пользователь*, который имеет доступ в папку /tmp. Zabbix требует
кодировку Unicode базы данных и `​UTF8`​ национальный набор символов.
Проверьте текущие настройки:

    sqlplus> select parameter,​value from v$nls_parameters where parameter='​NLS_CHARACTERSET'​ or parameter='​NLS_NCHAR_CHARACTERSET';​

Если вы создаете базу данных для Zabbix сервера вам необходимо поместить
куда-то изображения на хост с Oracle, например в папку
/tmp/zabbix\_images. Скопируйте все изображения из
misc/images/png\_modern в /tmp/zabbix\_images папку на хосте с Oracle:

    shell> cd /path/to/zabbix-sources
    shell> scp -r misc/images/png_modern user@host:/tmp/zabbix_images 

Измените файл database/oracle/images.sql и задайте переменную
`images_dir` на /tmp/zabbix\_images путь:

    CREATE OR REPLACE DIRECTORY image_dir AS '/tmp/zabbix_images'

Теперь подготовьте базу данных:

    shell> sqlplus zabbix/password@host/ORCL
    sqlplus> @database/oracle/schema.sql
    # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
    sqlplus> @database/oracle/images.sql
    sqlplus> @database/oracle/data.sql

#### IBM DB2

    shell> db2 "create database zabbix using codeset utf-8 territory us pagesize 32768"
    shell> cd database/ibm_db2
    shell> db2batch -d zabbix -f schema.sql
    # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
    shell> db2batch -d zabbix -f images.sql
    shell> db2batch -d zabbix -f data.sql 

::: noteclassic
Очень важно установить UTF-8 локаль Zabbix серверу, Zabbix
прокси и веб-серверу с Zabbix веб-интерфейсом. В противном случае
текстовая информация из Zabbix будет интерпретироваться IBM DB2 сервером
как не-UTF-8 и будет дополнительно конвертироваться по пути из Zabbix в
базу данных и обратно. База данных будет хранить поврежденные не-ASCII
символы.
:::

Веб-интерфейс Zabbix использует условия `OFFSET` и `LIMIT` в SQL
запросах. Чтобы они работали, IBM DB2 сервер должен иметь переменную
DB2\_COMPATIBILITY\_VECTOR заданную значением 3. Выполните следующую
команду перед запуском сервера базы данных:

    shell> db2set DB2_COMPATIBILITY_VECTOR=3

#### SQLite

    shell> cd database/sqlite3
    shell> sqlite3 /var/lib/sqlite/zabbix.db < schema.sql
    # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
    shell> sqlite3 /var/lib/sqlite/zabbix.db < images.sql
    shell> sqlite3 /var/lib/sqlite/zabbix.db < data.sql

::: noteclassic
Если с Zabbix прокси используется SQLite, то база данных
будет автоматически создана, если она еще не существует.
:::

Вернуться в [раздел установки](/ru/manual/installation/install).
