nacos开机自启无法连接上本机的Mysql
nacos和mysql处于同一台服务器的情况下才会遇到我说的这个问题。
一、遇到的问题如下:nacos在设置了开机自启动脚本/usr/lib/systemd/system/nacos.service,并且设置了systemctl enable nacos。mysql给nacos使用的用户开启了%和localhost均可连接的权限。这种情况下,nacos开机自启无法连接上Mysql,必须手动结束再开启。
开机自启动脚本如下(注意:启动脚本中不要存在注释,我加了注释报错,原因未知):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [Unit] Description=nacos # After=network.target #设置在联网后启动,但网络不一定联通,如果要联通的网络再启动,那么使用network-online.target After=mysqld.service #设置在mysqld.service之后启动 [Service] Type=forking TimeoutSec=0 #防止连接超时 User=admin #以什么角色启动 Group=admin #以什么组启动 ExecStart=/bin/bash /home/admin/nacos/bin/startup.sh -m standalone #因为我试单机节点启动,所以写全命令 ExecReload=/home/admin/nacos/bin/shutdown.sh #重启脚本地址 ExecStop=/home/admin/nacos/bin/shutdown.sh #停止脚本地址 Restart= on -failure PrivateTmp= true [Install] WantedBy=multi-user.target |
nacos/bin/startup.sh脚本修改(注意:这里需要直接指定JAVA_HOME,否则systemctl start nacos会报错):
1 2 3 4 5 | # [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java # [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java # [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java # [ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301 |
二、解决办法:nacos的JDBC配置需要增加一个“&allowPublicKeyRetrieval=true”,允许在 SSL 连接情况下获取公钥。
nacos/conf/application.properties配置文件修改
1 2 | db.url.0=jdbc:mysql: //[IP地址,不要用127.0.0.1]:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false &serverTimezone=UTC&allowPublicKeyRetrieval= true |
三、类似的问题出现在两个docker容器可以查看:https://blog.csdn.net/ElendaLee/article/details/131102400
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2019-10-12 Linux命令之test