以下操作在 mac os catalina 10.15.3 环境 完成
今天在docker用安装了个nacos启动一直报错 查看了下日志
doker logs nacos
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at sun.reflect.GeneratedConstructorAccessor78.newInstance(Unknown Source)
搭建maven环境
下载地址:http://maven.apache.org/download.cgi
下载:apache-maven-3.6.3-bin.tar.gz
如果你是windows系统 就下载 apache-maven-3.6.3-src.zip
下载好后解压然后打开终端:
vim ~/.bash_profile
按 i 进入编辑模式
最后面添加下面两行 MAVEN_HOME是自己解压的路径
export MAVEN_HOME=/Volumes/MacOSData/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
添加完后按 esc 退出编辑模式 输入 :wq 退出并保存当前问题
然后输入立即生效
source .bash_profile
编译nacos
去GITHUB 下载nacos 源码 :https://github.com/alibaba/nacos.git
编辑nacos/pom.xml 文件去除test模块 不懂看截图
然后再替换mysql驱动,官方的nacos内的mysql驱动是
mysql
mysql-connector-java
5.1.34
我们替换成最新的mysql8.0驱动 我这边数据库也是8.0.19的 所以用的最新的 具体看需求替换
mysql
mysql-connector-java
8.0.19
然后找到MysqlHealthCheckProcessor.java 文件将
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
替换成
import com.mysql.cj.jdbc.MysqlDataSource;
编辑完进入nacos目录下输入如下命令打包
mvn -Prelease-nacos clean install -U
打包成功如下
进入nacos/distribution/target/ 里面就是打包好的
linux用 :nacos-server-1.2.0.tar.gz
Windows用:nacos-server-1.2.0.zip
解压nacos-server-1.2.0.tar.gz
上传 nacos-server.jar
查找容器中的应用目录
所有容器列表
docker ps -a
执行
docker inspect 8edbc30cc7de
找到 MergedDir
这个就是在docker 里面的nacos 目录
/var/lib/docker/overlay2/11243ac76dd7d414d61703c5ab6347fdce9f0b4fe7ccbe7682de4d86dc0c2476/
cd /var/lib/docker/overlay2/11243ac76dd7d414d61703c5ab6347fdce9f0b4fe7ccbe7682de4d86dc0c2476/merged
然后我们再进入home目录
cd home/nacos/target/
将nacos-server.jar 改成nacos-server.jar .bak 当然你也可以直接删除 我是备份一下以免出问题 成功后再删除
上传自己编译的 nacos-server.jar
ftp目录图片
再次启动 nacos
我们先停止报错中一直尝试启动的nacos
docker stop 8edbc30cc7de
再启动
docker start 8edbc30cc7de
启动成功!!!
以下是我编译好的版本mysql驱动为8.0.19 数据库也是mysql8.0.19 理论上支持8.0.19 以下的所有8.0版本