项目场景:
docker部署zabbix遇到mysql
问题描述
部署成功后打开8080端口后遇到mysql数据库连接报错
The server requested authentication method unknown to the client
原因分析:
mysql 8.0.X版本后加密方式的改变,查看信息
mysql>
mysql>show variables like ‘%password%’;
–±---------------------------------------------±----------------+
| Variable_name | Value |
±---------------------------------------------±----------------+
| caching_sha2_password_auto_generate_rsa_keys | ON |
| caching_sha2_password_private_key_path | private_key.pem |
| caching_sha2_password_public_key_path | public_key.pem |
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| generated_random_password_length | 20 |
| mysql_native_password_proxy_users | OFF |
| password_history | 0 |
| password_require_current | OFF |
| password_reuse_interval | 0 |
| report_password | |
| sha256_password_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem -
解决方案:
修改数据库配置
mysql>ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘密码’;
mysql>ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH WITH mysql_native_password BY ‘密码’;
mysql>ALTER USER ‘zabbix’@‘%’ IDENTIFIED WITH sha256_password BY ‘密码’;
FLUSH PRIVILEGES;
查看配置信息:
-----------±-------±-----------------±----------------------+
| host | user | password_expired | plugin |
±----------±-------±-----------------±----------------------+
| % | root | N | mysql_native_password |
| % | zabbix | N | sha256_password |
| localhost | root | N | mysql_native_password |
±----------±-------±-----------------±----------------------+
打开8080端口,zabbix正常登录
本文描述了在使用Docker部署Zabbix时,由于MySQL8.0.x版本加密方式变化导致的连接问题。解决方法是修改数据库配置,将Zabbix用户的身份验证方式从SHA256切换回MySQL_native_password。
5198





