我已经在 CentOS 7 远程服务器上安装了 Zabbix,但无法运行它。
我看了一下/var/log/zabbix/
并收到以下错误:
1951:20190116:044530.834 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)
现在,问题是我确实有一个 zabbix 数据库,但它的名字是zabbixdb
,而不是zabbix
(如错误消息中所示)
我尝试重新运行设置页面并输入zabbixdb
,但仍然没有任何反应。此外,/etc/zabbix/web/zabbix.conf.php
已正确配置
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '127.0.0.1';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbixdb';
$DB['USER'] = 'zabbixuser';
$DB['PASSWORD'] = '[my_pass_here]';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = '127.0.0.1';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'SV Zabbix Server';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
我仔细检查了一下,它zabbixdb
确实存在,并且用户zabbixuser
对它拥有所有权限。
GRANT ALL PRIVILEGES ON `zabbixdb`.* TO 'zabbixuser'@'localhost'
还有什么其他原因?zabbix 有访问权限,因为它已经在中创建了表zabbixdb
,但无法使用它们。
编辑:解决方案
事实证明,我只是盲目地遵循了教程的说明。感谢@Zatarra 提供的解决方案。
我的问题是,当我写入数据库的凭证时,我将它们准确地写在文件的顶部,而它们也存在于较低的级别,因此,在读取时,它们会在内存中被覆盖。
我通过修改文件中较低级别的变量解决了这个问题。
答案1
尝试重新启动服务并检查它是否仍尝试在日志中使用 zabbix 数据库。如果确实如此,请检查是否有重复的 DBName 条目zabbix_server.conf
grep DBName /etc/zabbix/zabbix_server.conf
您收到的是 zabbix web 还是 zabbix server 的错误?据我所知,您粘贴的是 web 配置,也许您找错了地方。