优秀的编程知识分享平台

网站首页 > 技术文章 正文

nacos使用mysql 8.0时启动失败的问题

nanyue 2024-10-20 07:48:13 技术文章 4 ℃

nacos是目前比较常用的动态服务发现、配置管理和服务管理平台。

我们以前使用nacos时常和mysql5.7一起搭配使用,但现在mysql5.7已经被停止技术支持了。为了赶上时代步伐,也要考虑让nacos和mysql8.0.x搭班干活了。

安装好mysql8.0,启动mysql数据库,使用nacos初始化脚本创建nacos数据库,然后启动nacos。咦!程序启动以后,nacos管理网页无法打开,再查看nacos的启动日志,出现“No DataSource set”的错误提示。

(1)、原因:nacos默认调用的mysql依赖包版本太老,无法连接mysql8.0版本数据库

解决:将mysql-connector-j-8.2.0.tar.gz包中的mysql-connector-j-8.2.0.jar依赖包复制到nacos安装目录的plugins/mysql目录(需要新建)。

(2)、原因:mysql8.0的默认认证方式相比mysql5.7的发生了改变

解决:

a、修改mysql的设置,改变mysql8.0的默认认证方式

在[mysqld]部分,增加:

default_authentication_plugin=mysql_native_password

b、登录mysql,在mysql命令行执行ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password',修改数据库连接用户的登录密码,然后flush privileges刷新权限。

上述步骤完成后,再重新启动nacos,nacos就可以正常连接mysql8.0的数据库了。

特别需要留意的是,网上提到了另一种解决方法:将nacos\conf目录下的application.properties改名为bootstrap.properties,然后启动nacos。实际上这是一种错误方法,此时nacos虽然可以启动,但实际上并没有使用mysql8.0数据库,而是使用了nacos自带的嵌入式数据库derby。

最近发表
标签列表