Zabbix Documentation 3.2

3.04.04.45.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


manual:appendix:install:db_scripts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
manual:appendix:install:db_scripts [2016/02/22 09:53]
manual:appendix:install:db_scripts [2017/11/21 07:45] (current)
dimir [PostgreSQL] copy from 3.0
Line 1: Line 1:
 +==== 1 Database creation scripts ====
  
 +=== Overview ===
 +
 +A Zabbix database must be created during the installation of Zabbix server or proxy.
 +
 +This section provides scripts for creating a Zabbix database. A separate schema script is provided for each supported database.
 +
 +<note tip>''​schema.sql'',​ ''​images.sql''​ and ''​data.sql''​ files are located in the //​database//​ subdirectory of Zabbix sources. If Zabbix was installed from distribution packages, refer to the distribution documentation.</​note>​
 +
 +<note important>​For a Zabbix proxy database, **only** ''​schema.sql''​ should be imported (no images.sql nor data.sql)</​note>​
 +
 +
 +**Scripts**
 +
 +=== MySQL ===
 +
 +  shell> mysql -uroot -p<​password>​
 +  mysql> create database zabbix character set utf8 collate utf8_bin;
 +  mysql> grant all privileges on zabbix.* to [email protected] identified by '<​password>';​
 +  mysql> quit;
 +  # stop here if you are creating database with Zabbix packages
 +  shell> cd database/​mysql
 +  shell> mysql -uzabbix -p<​password>​ zabbix < schema.sql
 +  # stop here if you are creating database for Zabbix proxy
 +  shell> mysql -uzabbix -p<​password>​ zabbix < images.sql
 +  shell> mysql -uzabbix -p<​password>​ zabbix < data.sql
 +
 +=== PostgreSQL ===
 +
 +Please refer to [[manual:​installation:​install_from_packages|this section]] if you are installing Zabbix from packages.
 +
 +You need to have database user with permissions to create database objects. The following shell command will create user ''​zabbix''​. Specify password when prompted and repeat password (note, you may first be asked for ''​sudo''​ password):
 +
 +  shell> sudo -u postgres createuser --pwprompt zabbix
 +
 +Now we will set up the database ''​zabbix''​ (last parameter) with the previously created user as the owner (''​-O zabbix''​) and import initial schema and data (assuming you are in the root directory of Zabbix sources):
 +
 +  shell> sudo -u postgres createdb -O zabbix zabbix
 +  shell> cd database/​postgresql
 +  shell> cat schema.sql | sudo -u zabbix psql zabbix
 +
 +Stop here if you are creating database for Zabbix proxy.
 +
 +  shell> cat images.sql | sudo -u zabbix psql zabbix
 +  shell> cat data.sql | sudo -u zabbix psql zabbix
 +
 +<note important>​The above commands are provided as an example that will work in most of GNU/Linux installations. You can use different commands, e. g. "psql -U <​username>"​ depending on how your system/​database are configured. If you have troubles setting up the database please consult your Database administrator.
 +</​note>​
 +
 +=== Oracle ===
 +We assume that a //zabbix// database user with //​password//​ password exists and has permissions to create database objects in ORCL service located on  the //host// Oracle database server with a //user// shell user having write access to /tmp directory. Zabbix requires a Unicode database character set and a ''​UTF8''​ national character set. Check current settings:
 +  sqlplus> select parameter,​value from v$nls_parameters where parameter='​NLS_CHARACTERSET'​ or parameter='​NLS_NCHAR_CHARACTERSET';​
 +
 +If you are creating a database for Zabbix server you need to have images on a predefined location on Oracle host. Copy all images from misc/​images/​png_modern to /​tmp/​zabbix_images directory on Oracle host:
 +  shell> cd /​path/​to/​zabbix-sources
 +  shell> ssh [email protected] "mkdir /​tmp/​zabbix_images"​
 +  shell> scp -r misc/​images/​png_modern [email protected]:/​tmp/​zabbix_images/​
 +
 +Now prepare the database:
 +  shell> cd database/​oracle
 +  shell> sqlplus zabbix/​[email protected]/​ORCL
 +  sqlplus> @schema.sql
 +  # stop here if you are creating database for Zabbix proxy
 +  sqlplus> @images.sql
 +  sqlplus> @data.sql
 +  ​
 +After executing the images.sql script the /​tmp/​zabbix_images temporary directory can be removed.
 +
 +=== 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
 +  # stop here if you are creating database for Zabbix proxy
 +  shell> db2batch -d zabbix -f images.sql
 +  shell> db2batch -d zabbix -f data.sql ​
 +
 +<​note>​It is important to set UTF-8 locale for Zabbix server, Zabbix proxy and the web server running Zabbix frontend. Otherwise text information from Zabbix will be interpreted by IBM DB2 server as non-UTF-8 and will be additionally converted on the way from Zabbix to the database and back. The database will store corrupted non-ASCII characters.</​note>​
 +
 +Zabbix frontend uses ''​OFFSET''​ and ''​LIMIT''​ clauses in SQL queries. For this to work, IBM DB2 server must have DB2_COMPATIBILITY_VECTOR variable be set to 3. Run the following command before starting the database server:
 +
 +  shell> db2set DB2_COMPATIBILITY_VECTOR=3
 + 
 +=== SQLite ===
 +
 +  shell> cd database/​sqlite3
 +  shell> sqlite3 /​var/​lib/​sqlite/​zabbix.db < schema.sql
 +  # stop here if you are creating database for Zabbix proxy
 +  shell> sqlite3 /​var/​lib/​sqlite/​zabbix.db < images.sql
 +  shell> sqlite3 /​var/​lib/​sqlite/​zabbix.db < data.sql
 +
 +<​note>​If using SQLite with Zabbix proxy, database will be automatically created if it does not exist.</​note>​
 +
 +Return to the [[manual:​installation:​install|installation section]].