nacos切换mysql8.0数据库

一、应用环境
Nacos:1.2.0

MySQL:8.0.16

二、Nacos安装配置
1、解压(默认端口8848),

2、\conf\application.properties:

最上方增加server.contextPath=/nacos

配置MySQL数据库连接

3、导入数据库脚本

4、默认不支持mysql8:替换\target\nacos-server.jar

5、启动\bin\startup.cmd

6、启动成功后窗口显示Nacos版本、模式、端口、进程号、访问地址、官网信息,进入

http://localhost:8848/nacos/index.html

默认账户nacos/nacos

7、建立命名空间

点击左侧菜单“命名空间”、右上角“新建命名空间”按钮,创建命名空间

命名空间信息:查找数据库表tenant_info,tenant_id(命名空间ID)、tenant_name(命名空间名称)、tenant_desc(命名空间描述)

三、nacos-server.jar
1、nacos1.2.0默认只支持MySQL5,不支持MySQL8,所以需要修改源代码自己编译

2、源代码地址:https://github.com/alibaba/nacos.git

3、修改代码:

(1)pom.xml

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
改为

<dependency>
<groupId>org.apache.commmons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
(2)api/pom.xml、client/pom.xml、common/pom.xml

<configuration>
<source>6</source>
<target>6</target>
</configuration>
改为

<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
(3)config/pom.xml

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
</dependency>
改为

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
(4)com.alibaba.nacos.config.server.service.BaseDataSourceServiceImpl.java、com.alibaba.nacos.config.server.service.LocalDataSourceServiceImpl.java

import org.apache.commons.dbcp.BasicDataSource; ds.setMaxActive ds.setMaxWait
改为

import org.apache.commons.dbcp2.BasicDataSource; ds.setMaxTotal ds.setMaxWaitMillis
(5)console/src/main/resources/META-INFO/nacos-default.properties

db.url.0=jdbc:mysql://11.162.196.161:3306/diamond_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:mysql://11.163.152.91:3306/diamond_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
改为

db.url.0=jdbc:mysql://11.162.196.161:3306/diamond_devtest?serverTimezone=GMT%2B8characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:mysql://11.163.152.91:3306/diamond_devtest?serverTimezone=GMT%2B8characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
(6)com.alibaba.nacos.naming.healthcheck.MysqlHealthCheckProcessor.java

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
改为

import com.mysql.cj.jdbc.MysqlDataSource;
4、编译打包

根目录下的BUILDING文件有详细说明。

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
编译成功后,从distribution/target/nacos-server-1.2.0/nacos/target文件夹拷取目标文件nacos-server.jar

四、常见问题
1、如果在Eclipse中修改完上述代码后仍有如下编译错误,错误代码:

The type ‘XXX‘ is not API...

修改Windows->Preferences->Java->Compiler->Errors/Warning->Deprecated And restricted API->Forbidden reference选项为Warning

2、如果项目启动时报错如下

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
网上常见的解决方案:

(1)启动类XXXApplication加上注解:@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})

(2)修改pom文件在build节中加入resource配置,确保build时加载到配置文件

我的情况及解决方案:

(1)项目不是刚创建的,而是在其他人开发的,所以认为已经过测试,代码没有问题

(2)从错误代码分析,是数据库驱动类报错,项目此时未连接数据库,所以判断是nacos连接数据库错误

(3)排队配置的环境变量未生效,已重启所有cmd窗口、eclipse环境,确保环境变量正确加载

(4)排除应用启动顺序错误问题

(5)查验数据库版本一致性,最终确认,开发用的数据库为8.0.12,而我的数据库是8.0.16,所以需要重新打包nacos-server.jar

原文链接:https://blog.csdn.net/mch111666/article/details/105159213/

原文地址:https://www.cnblogs.com/5858y/p/12682831.html

时间: 2024-10-16 16:24:28

nacos切换mysql8.0数据库的相关文章

Linux Centos7配置mysql8.0数据库

本文转至:672530440 在此感谢博主,撒花!!! 本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结: CentOS7 安装mysql8 步骤: window下的Navicat 连接MySql8: 涉及到的Linux命令 https://blog.csdn.net/managementandjava/article/details/80039650 ---------------------------------------------------------

mysql8.0数据库执行语句报1215-Cannot add foreign key constraint

原创公众号:路人甲Java     一位工作十年的前阿里P7大佬. 一.这个问题始终没整明白根本原因,只是换了个库再次执行可以成功. 1.在虚拟机中安装好linux系统后,想着装个mysql服务器吧,安装好之后就可以使用navicat进行连接操作了[具体搭建步骤后续更新]. 2.建好了也可以连接成功并创建了数据库,其他几张关联表也都执行成功,唯独在执行创建employees表的时候,界面报1215-Cannot add foreign key constraint,如下图: 3.经查阅资料,我做

MySQL8.0数据库基础教程(二)-理解&quot;关系&quot;

1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据. 现实世界中的各种实体以及实体之间的各种联系均用关系模型表示.现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准.标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作. 关系模型由关系

spark2.0 连接mysql8.0数据库操作表数据

package operationMysql import config.conf.{sc, spark_session} import org.apache.spark.sql.DataFrame object readingMysqlOperation { def main(args: Array[String]): Unit = { val df: DataFrame = spark_session.read .format("jdbc") .option("url&q

数据库mysql8.0安装

第一次写博客,准备坚持下去把每天学习到的东西记录下来,刚好安装mysql8.0过程中遇到了一些问题并解决,系统win10.致敬博客 首先先粘贴一段mysql的百度百科词条:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件.官方介绍说

java程序连接mysql8.0.12数据库报连接异常

最近做SSM框架整合练习,数据库使用最新的 mysql8.0.12版本,但是部署好服务器后,请求相应的资源时报org.springframework.transaction.CannotCreateTransactionException异常,查了很多资料,终于找到原因,现做一个总结. 以往版本的mysql连接中,程序中配置的mysql连接驱动为com.mysql.jdbc.Driver,但是8.0.12版本的mysql数据库驱动已更改,变更为:com.mysql.cj.jdbc.Driver,

Linux MySQL8.0.12备份数据库

环境CentOS7.4 MySQL8.0.12 #备份地址 backupdir=/data/bak #备份文件后缀时间 time=_` date +%Y_%m_%d_%H_%M_%S ` #需要备份的数据库名称 db_name=friends #mysqldump命令使用绝对路径 /usr/local/mysql/bin/mysqldump $db_name | gzip > $backupdir/$db_name$time.sql.gz 同时修改MySQL的配置文件,my.cnf [mysql

mysql学习(2)-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误

Navicat Premium 12 链接MySQL8.0.11数据库报2059错误 1,问题现象 安装完MySQL8.0.11和Navicat Premium12后,我们会用Navicat去测试连接MySQL,但是测试时出现以下报提示: 2,问题原因 mysql8.0之前的版本加密规则是mysql_native_password,mysql8.0之后,加密规则是caching_sha2_password. 3,解决方案 在这里要特别说明一点,如果安装完MySQL8.0.11以后,没有设置环境变

mybatis链接mysql8.0以上版本数据库的逆向工程配置

mybatis链接mysql8.0以上版本数据库的逆向工程配置两种xml文件配置方案: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dt