无
客户安装MySQL 8.0.12版本,想通过APM监控MySQL应用。在数据库本地以及其他配有MYSQL 8.0.12客户端的主机上通过mysql -u root -p 命令可以正常连接登录数据库,但是通过APM始终添加应用失败。通过抓包发现IMC 成功发送报文端口3306至MySQL服务器侧,MySQL服务器也正常回应报文至IMC侧,用户名密码也输入正确没有问题。
在数据库本地以及其他机器上可以正常连接登录数据库,证明数据库的远程登录配置和密码均没有问题。 通过抓包也排除了中间网络防火墙对报文的拦截。
该问题原因系MySQL8.0.11版本开始默认的登录认证会使用插件caching_sha2_password ,而8.0.11版本之前的登录数据库使用插件是mysql_native_password。 IMC APM使用的是兼容老版本MYSQL 的JDBC驱动包,该驱动包中尚未支持caching_sha2_password插件。所以导致连接数据库时无法验证。
可以使用MySQL 8.0.11之前版本的客户端连接数据库进行验证
root@ubuntu:/home/vickys# mysql --host 172.17.0.7 -u root -p
Enter password:
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
输入密码时MySQL客户端会报如下错误无法加载caching_sha2_password验证插件。
若想在MySQL8.0版本中继续使用旧版本中的认证方式,需要在MySQL服务器侧通过命令:
vim /etc/mysql/my.cnf 打开my.cnf 配置文件,并在其中添加配置如下:
[mysqld]
default_authentication_plugin=mysql_native_password
因为此参数不可动态修改,写入my.cnf 文件后需重启MySQL服务。若现场是生产环境数据库,修改前请申请窗口。
后续APM会优化使用新版的连接MYSQL的JDBC驱动包解决此问题。
(0)
该案例对您是否有帮助:
您的评价:1
若您有关于案例的建议,请反馈:
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作