在安装Zabbix server 或 proxy时必须创建Zabbix数据库。
本节提供创建Zabbix数据库的指导说明。针对每个支持的数据库都有独立的操作指南。
UTF-8是Zabbix唯一支持的编码格式,该编码已被证实不存在任何安全缺陷。用户需注意,若使用其他某些编码可能存在已知的安全问题问题。 另请参阅使用utf8mb4排序规则过滤的限制。
如果从Zabbix Git repository安装,您需要先运行以下命令才能继续后续步骤:
make dbschema
为确保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;
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
参数:
您需要拥有创建数据库objects权限的数据库用户。
如果通过Zabbix软件包安装,请转至对应平台的instructions。
如果从源代码安装Zabbix:
以下shell命令将创建用户zabbix
。在提示时指定密码并重复输入密码(注意,系统可能首先要求输入sudo
密码):
以下shell命令将创建数据库zabbix
(最后一个参数),并将之前创建的用户设为其所有者(-O 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的说明,请参阅单独的section。
创建和配置Oracle数据库的说明详见单独的section。
SQLite数据库仅支持Zabbix proxy使用!
如果数据库不存在,系统将自动创建。