首页 > 解决方案 > 无法启动 zabbix-server-mysql 的 docker 映像:'无法使用数据库“zabbix”:其“用户”表为空(这是 Zabbix 代理数据库吗?)'

问题描述

我正在部署一个 zabbix 服务器。我在云平台上创建了一个 MySQL 数据库。当我启动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表。

当我重新启动容器时,同样的错误再次出现。

标签: mysqldockerzabbix

解决方案


我找到了https://github.com/zabbix/zabbix-docker/issues/13,因此推断这是 MySQL 数据库排序规则的问题(这与警告相符** Database 'zabbix' already exists. Please be careful with database COLLATE!

我通过重新创建 MySQL 数据库来解决问题

  1. 字符集:utf8
  2. 排序规则:utf8_bin

推荐阅读