1 数据库创建

概述

在安装Zabbix server 或 proxy时必须创建Zabbix数据库。

本节提供创建Zabbix数据库的指导说明。针对每个支持的数据库都有独立的操作指南。

UTF-8是Zabbix唯一支持的编码格式,该编码已被证实不存在任何安全缺陷。用户需注意,若使用其他某些编码可能存在已知的安全问题问题。 另请参阅使用utf8mb4排序规则过滤的限制

如果从Zabbix Git repository安装,您需要先运行以下命令才能继续后续步骤:

make dbschema

MySQL/MariaDB

为确保Zabbix server/proxy在MySQL数据库中正常运行,系统支持utf8(即utf8mb3)和utf8mb4字符集(分别对应utf8_bin和utf8mb4_bin排序规则)。建议新安装环境采用utf8mb4字符集。

对于Zabbix 6.0.11及更高版本,在导入数据库架构时需创建确定性触发器。在MySQL和mariadb环境中,若启用了二进制日志且无超级用户权限,同时MySQL配置文件中未设置log_bin_trust_function_creators = 1,则必须设置GLOBAL log_bin_trust_function_creators = 1参数。

若通过Zabbix软件包安装,请转至对应平台的instructions

若从源代码安装Zabbix:

  • 创建并配置数据库及用户
mysql -uroot -p<password>
       
       mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
       mysql> create user 'zabbix'@'localhost' identified by '<password>';
       mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
       mysql> SET GLOBAL log_bin_trust_function_creators = 1;
       mysql> quit;
  • 将数据导入数据库。对于Zabbix proxy数据库,仅需导入schema.sql文件(无需导入images.sql和data.sql)
cd database/mysql
       mysql -uzabbix -p<password> zabbix < schema.sql
       # stop here if you are creating database for Zabbix proxy
       mysql -uzabbix -p<password> zabbix < images.sql
       mysql -uzabbix -p<password> zabbix < data.sql

成功导入数据库架构后,可禁用log_bin_trust_function_creators参数:

mysql -uroot -p<password>
       
       mysql> SET GLOBAL log_bin_trust_function_creators = 0;
       mysql> quit;

PostgreSQL

您需要拥有创建数据库objects权限的数据库用户。

如果通过Zabbix软件包安装,请转至对应平台的instructions

如果从源代码安装Zabbix:

  • 创建数据库用户

以下shell命令将创建用户zabbix。在提示时指定密码并重复输入密码(注意,系统可能首先要求输入sudo密码):

sudo -u postgres createuser --pwprompt zabbix
  • 创建数据库

以下shell命令将创建数据库zabbix(最后一个参数),并将之前创建的用户设为其所有者(-O zabbix):

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • 导入初始架构和数据(假设您位于Zabbix源代码的根目录)

对于Zabbix proxy数据库,只需导入schema.sql(无需导入images.sql或data.sql):

cd database/postgresql
       cat schema.sql | sudo -u zabbix psql zabbix
       # stop here if you are creating database for Zabbix proxy
       cat images.sql | sudo -u zabbix psql zabbix
       cat data.sql | sudo -u zabbix psql zabbix

上述命令适用于大多数GNU/Linux安装环境。根据系统/数据库配置的不同,您可能需要使用其他命令,例如:

psql -U <username>

若在数据库设置过程中遇到问题,请咨询数据库管理员。

TimescaleDB

有关创建和配置TimescaleDB的说明,请参阅单独的section

Oracle

创建和配置Oracle数据库的说明详见单独的section

SQLite

SQLite数据库仅支持Zabbix proxy使用!

如果数据库不存在,系统将自动创建。

返回installation section