MySQL版本:8.0.18
Linux版本:centos7
问题:nacos 无法连接MySQL8,需要从源代码修改MySQL连接驱动
从GitHub上获取Nacos源码
git clone https://github.com/alibaba/nacos.git
修改源代码
进入下载好的nacos目录,进入pom.xml 父文件,在665行修改为8.0.18驱动
<!-- JDBC libs -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <version>5.1.34</version> -->
<version>8.0.18</version>
</dependency>
然后修改MysqlHealthCheckProcessor.java
目录:/usr/local/nacos/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/MysqlHealthCheckProcessor.java
红色是目录。
// import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;原数据在24行
//将其替换
import com.mysql.cj.jdbc.MysqlDataSource;
编译
#进入nacos目录
cd /usr/local/nacos/
#编译命令
mvn -Prelease-nacos clean install -U
#编译完成,复制target目录nacos-server-1.2.0-SNAPSHOT 到local目录
#进入target
cd /usr/local/nacos/distribution/target/
#复制
cp -a nacos-server-1.2.0-SNAPSHOT /usr/local
初始化mysql数据库
将/usr/local/nacos-server-1.2.0-SNAPSHOT/nacos/conf/ 目录下 nacos-mysql.sql 文件在navacat运行建表
修改nacos配置 添加支持mysql数据源
#进入conf目录 application.properties文件 添加数据 修改 账号 密码 数据库
vi application.properties
#填入下面内容
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
启动服务器
进入bin 目录,启动
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
关闭服务器
sh shutdown.sh
查看日志是否启动成功
cat ../logs/start.out
#出现下面日志 启动成功
2019-12-30 14:59:53,489 INFO Nacos started successfully in stand alone mode.
此时大功告成,输入路径访问nacos
我的路径:http://192.168.121.131:8848/nacos
账号密码默认nacos
记得防火墙端口开启
firewall-cmd --zone=public --add-port=8848/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=8848/tcp