Netdata安装后MariaDB出现‘Access denied for user 'netdata'@'localhost' (using password: NO)’警告的疑问及解决方法
Netdata安装后MariaDB出现‘Access denied for user 'netdata'@'localhost' (using password: NO)’警告的疑问及解决方法
Hey there, let's break down this warning and figure out what to do about it:
1. 这个警告是什么意思?
Netdata自带了一个监控MariaDB/MySQL数据库的模块,默认情况下,这个模块会尝试用名为netdata的用户无密码连接本地MariaDB实例,以此获取查询速率、连接数、资源占用这类监控指标。出现这个警告,是因为你的MariaDB服务器里不存在netdata这个用户,或者该用户没有权限访问数据库统计数据。
2. 这说明Netdata配置错误了吗?
其实不算。Netdata本身安装是正常的——这只是MariaDB监控模块的小问题,对功能的影响分两种情况:
- 如果你不需要监控MariaDB的指标(比如数据库负载、连接数等),Netdata的其他功能(系统CPU/内存/磁盘、Nginx、PHP-FPM等)完全不受影响,正常运行。
- 如果你需要监控MariaDB,那这个模块会无法收集数据,你在Netdata仪表盘里就看不到任何和MariaDB相关的统计信息。
3. 怎么解决这个问题?
根据你是否需要MariaDB监控,有两种解决方式:
方式一:禁用MariaDB监控(不需要的话)
- 用编辑器打开Netdata的MySQL配置文件:
sudo nano /etc/netdata/go.d/mysql.conf - 找到
enabled: yes这一行,改成enabled: no - 保存文件后重启Netdata生效:
sudo systemctl restart netdata
之后警告就会消失,Netdata会跳过MariaDB的监控尝试。
方式二:创建netdata用户用于监控(需要MariaDB指标的话)
按以下步骤创建所需用户并授予必要权限:
- 以root用户登录MariaDB:
(输入你的MariaDB root密码即可进入)sudo mysql -u root -p - 执行以下SQL命令创建
netdata用户,并授予仅够获取监控数据的最小权限(不需要完整数据库访问权限):CREATE USER 'netdata'@'localhost' IDENTIFIED BY ''; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'netdata'@'localhost'; FLUSH PRIVILEGES; - 输入
exit退出MariaDB命令行。 - 重启Netdata让它识别新用户:
sudo systemctl restart netdata
完成后警告会消失,你就能在Netdata仪表盘里看到MariaDB的相关监控指标了。
备注:内容来源于stack exchange,提问作者DanRan
相关产品推荐
相关产品推荐

