我使用Prometheus监控Mysql数据库,监控成功之后,一直出现如下报错:
Error pinging mysqld: Error 1045: Access denied for user ‘root’@‘db01’(using password: YES) source=“exporter.go:146”
查看数据库所有的用户信息,我们发现数据库默认建立了很多空用户
MariaDB [mysql]> select User,Host from mysql.user;
+----------+-----------+
| User | Host |
+----------+-----------+
| exporter | % |
| root | 127.0.0.1 |
| root | ::1 |
| | db01 |
| root | db01 |
| | localhost |
| root | localhost |
+----------+-----------+
7 rows in set (0.00 sec)
我们需要删除数据库多余的空用户
MariaDB [mysql]> delete from mysql.user where Host = "db01";
Query OK, 2 rows affected (0.00 sec)
MariaDB [mysql]> select User,Host from mysql.user;
+----------+-----------+
| User | Host |
+----------+-----------+
| exporter | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
+----------+-----------+
3 rows in set (0.00 sec)
删除多余的空用户后,重启数据库,直接登陆就可以了
systemctl restart mariadb
mysql -uexporter -p123 -h172.16.1.51
# Welcome to the MariaDB monitor. Commands end with ; or \g.
# Your MariaDB connection id is 2
# Server version: 5.5.68-MariaDB MariaDB Server