已测试,可以使用
默认情况下,Nacos开启的是Embedded内嵌数据库,本文记录如何让Nacos1.2.0支持mysql8.0.19;
从官网上下载的Nacos默认支持mysql5.X;因为系统上已有了mysql8.X,不想再另外安装,所以调整了下源码,让其支持mysql8.X;
本文只记录Nacos支持mysql8.X源码的修改部份,具体的编绎、安装请查阅前一篇文章:Nacos学习(一):Nacos1.1.4在CentOS7下载源文件、编绎、安装。
修改的第一部份:将mysql的JDBC版本升级到8以上,以支持mysql8.X;
将
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
改为:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
com.alibaba.nacos.naming.healthcheck.MysqlHealthCheckProcessor:
将
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
改为
import com.mysql.cj.jdbc.MysqlDataSource;
修改的第二部份:将dbcp缓存升级到dbcp2:
1、修改nacos/pom.xml
修改nacos/config/pom.xml
将
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
改为:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.7.0</version>
</dependency>
commons-dbcp
commons-dbcp
改为:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
将
import org.apache.commons.dbcp.BasicDataSource;
改为:
import org.apache.commons.dbcp2.BasicDataSource;
将
ds.setMaxActive(30);
改为:
ds.setMaxTotal(30);
将
ds.setMaxWait(10000L);
改为:
ds.setMaxWaitMillis(10000L);
将
import org.apache.commons.dbcp.BasicDataSource;
改为:
import org.apache.commons.dbcp2.BasicDataSource;
将
val = env.getProperty("db.maxActive." + i, env.getProperty("db.maxActive"));
ds.setMaxActive(Integer.parseInt(defaultIfNull(val, "20")));
改为:
val = env.getProperty("db.maxActive." + i, env.getProperty("db.maxActive"));
ds.setMaxTotal(Integer.parseInt(defaultIfNull(val, "20")));
将
ds.setMaxWait(3000L);
改为:
ds.setMaxWaitMillis(3000L);
上述修改完成后,重新编绎,生成nacos-server-1.1.4安装包目录。
编译语句:
mvn -Prelease-nacos clean install -U
接下来,做如下配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.20.80:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
到此,按standalone模式启动Narco,则已支持mysql数据库;
————————————————
版权声明:本文为CSDN博主「CC贝」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012480990/article/details/102780908