我正在部署一个zabbix-server。我在云平台上创建了一个MySQL数据库。当我启动连接到这个DB的zabbix-server-mysql:alpine-5.2-latest
容器时,它会在一段时间后自动退出。日志显示:
* Preparing Zabbix server
** Using MYSQL_USER variable from ENV
** Using MYSQL_PASSWORD variable from ENV
********************
* DB_SERVER_HOST: xxxxx
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
********************
** Database 'zabbix' already exists. Please be careful with database COLLATE!
** Creating 'zabbix' schema in MySQL
ERROR 1071 (42000) at line 357: Specified key was too long; max key length is 3072 bytes
** Preparing Zabbix server configuration file
** Updating '/etc/zabbix/zabbix_server.conf' parameter "ListenPort": ''...removed
** Updating '/etc/zabbix/zabbix_server.conf' parameter "SourceIP": ''...removed
...
** Updating '/etc/zabbix/zabbix_server.conf' parameter "TLSPSKIdentity": ''...removed
** Updating '/etc/zabbix/zabbix_server.conf' parameter "TLSPSKFile": ''...removed
** Updating '/etc/zabbix/zabbix_server.conf' parameter "User": 'zabbix'...updated
Starting Zabbix Server. Zabbix 5.2.3 (revision ae46273).
Press Ctrl+C to exit.
8:20210125:093824.714 Starting Zabbix Server. Zabbix 5.2.3 (revision ae46273).
8:20210125:093824.714 ****** Enabled features ******
8:20210125:093824.714 SNMP monitoring: YES
8:20210125:093824.714 IPMI monitoring: YES
8:20210125:093824.714 Web monitoring: YES
8:20210125:093824.714 VMware monitoring: YES
8:20210125:093824.714 SMTP authentication: YES
8:20210125:093824.714 ODBC: YES
8:20210125:093824.714 SSH support: YES
8:20210125:093824.714 IPv6 support: YES
8:20210125:093824.714 TLS support: YES
8:20210125:093824.714 ******************************
8:20210125:093824.714 using configuration file: /etc/zabbix/zabbix_server.conf
8:20210125:093824.946 cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)
它可以连接到MySQL并创建一些表,包括users
表。
当我重新启动容器时,同样的错误再次出现。
我发现https://github.com/zabbix/zabbix-docker/issues/13,因此推断这是关于MySQL数据库排序的问题(这与警告** Database 'zabbix' already exists. Please be careful with database COLLATE!
相匹配)
我用
重新创建MySQL数据库来解决这个问题- 字符集:utf8
- 排序:utf8_bin
在将zabbix设备导入KVM时遇到了同样的问题。我通过在MySQL中删除zabbix数据库并重新创建它,并根据zabbix安装文档使用DB脚本填充它来解决这个问题。
对于使用docker安装的Zabbix,您必须将Zabbix数据库删除到MySQL容器中才能解决此错误。