首页 > 数据库 >Nacos连接Mysql8连接失败问题

Nacos连接Mysql8连接失败问题

时间:2023-09-30 11:46:31浏览次数:39  
标签:SERVICE Mysql8 root nacos Nacos -- MYSQL true 连接

一、问题复现

Nacos、Mysql 容器均开机自启。

Nacos 配置了 Mysql,配置确认没有问题,发现每次重启服务器,Nacos都无法直接成功连接 mysql。每次启动完 Nacos 后,需要用 Datagrip 连接一次 Mysql,再 docker restart nacos 才可以连上 Mysql。

Nacos 启动报错 No DataSource set,详情如下

 

很显然数据库没连上,经过百度搜索后,整理出一个解决方案。

解决方案之前,先看我的 nacos docker 启动参数:

docker run -d \
-e NACOS_AUTH_ENABLE=true \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-p 8848:8848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=XXX.XXX.XX.XXX \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=这里是密码嘻嘻嘻 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
--restart=always \
--privileged=true \
-v /home/data/nacos/logs:/home/nacos/logs \
--name xdclass_nacos_auth \
nacos/nacos-server:2.0.2

 


二、解决方案
第一步:nacos配置的用户事root登录,先配置mysql用户表,修改root用户权限,使其能够实现远程登录(我的mysql版本是8.0)
-- 查看用户权限
select host,user from user;

-- 修改root权限,可以远程登录
update user set host='%' where user='root';

-- 刷新权限
flush privileges;

--------------------------------------- 分割线 ---------------------------------------

-- MySQL8以前的版本,给root用户授权的语句,如下:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
-- 注:
-- All : 表示所有操作,比如select,update,insert等操作
-- *.* :表示所有库的所有表(test.*则表示test库的所有表)
-- root :表示授权的用户名
-- % :表示可以从任意地方登录,如改成192.168.0.999,则表示只能从ip地址为192.168.0.999的机器登录
-- 123456 :表示授权的用户名的密码


第二步:修改nacos 启动参数
方案① 第一次run镜像的时候,可以在参数上修改一波

在mysql连接参数后面加上一个 &allowPublicKeyRetrieval=true

解释:"&allowPublicKeyRetrieval=true" 是 MySQL 数据库连接字符串中的一个参数,用于允许在 SSL 连接情况下获取公钥。

docker run -d \
-e NACOS_AUTH_ENABLE=true \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-p 8848:8848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=XXX.XXX.XX.XXX \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=这里是密码嘻嘻嘻 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true' \
--restart=always \
--privileged=true \
-v /home/data/nacos/logs:/home/nacos/logs \
--name xdclass_nacos_auth \
nacos/nacos-server:2.0.2

 


方案② 我直接在docker容器的配置文件改了,如下

systemctl stop docker 关闭 docker

# 进入该容器的配置文件所在目录
cd /var/lib/docker/containers/[容器ID]

# 更改配置文件
vim config.v2.json


在后面加了 &allowPublicKeyRetrieval=true

最后重启 docker 万事大吉,溜溜球~

标签:SERVICE,Mysql8,root,nacos,Nacos,--,MYSQL,true,连接
From: https://www.cnblogs.com/prprprcom/p/17737696.html

相关文章

  • Go每日一库之144:go-obs-websocket(OBS连接器)
    推荐理由互联网的兴起带动了直播行业的火热,除了少数直播网站有自己的推流工具之外,OBS是主流的推流工具,广泛应用在直转播技术之上。简介go-obs-websocket是一个与OBS进行websocket通信的连接库,具备调用大部分OBS功能的接口,在互动直播和智能转播技术上广泛应用。快速开始安装g......
  • Go每日一库之139:cmux (连接多路复用)
    如果一个应用需要同时对外提供HTTP和gRPC服务,通常情况下我们会为两个服务绑定不同的监听端口,而本文要介绍的cmux为我们提供了一种连接多路复用的新选择,使用cmux可以将不同服务绑定在同一个网络端口上!简介多路复用是个很常见的概念,我们在编写HTTP服务时通常会用http.S......
  • c#开发学习之listview连接SQLserver并将数据放到listview里显示
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceW......
  • TCP/IP连接数的最大值取决于操作系统、硬件和应用程序等多个因素
    TCP/IP连接数的最大值取决于操作系统、硬件和应用程序等多个因素。下面是一些常见操作系统中TCP/IP连接数的默认值和最大值:Windows10/WindowsServer2019:默认值为16384,最大值为16777216Windows8/WindowsServer2012:默认值为16384,最大值为16777216Windows7/WindowsServer......
  • 关于一个django工程如何与达梦数据库连接的全程总结
    关于一个django工程如何与达梦数据库连接的全程总结目录1.达梦数据库的安装(win、图形化工具)2.DM管理工具的基本使用:表空间的建删用户的管理模式的建删表的创建、删除、查看3.Django项目接入dm数据库settings的database配置解释器中的相关包dmPython的编译※环境准备正式编......
  • 高效管理体验?试试docker registry连接
    Linux本地DockerRegistry本地镜像仓库远程连接DockerRegistry本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pullorpush(拉取和推送)镜像,不受本地局域网限制!1.部署DockerRegistry使用官网安装方式,docker命令一键启动,该命令启动一个registry的容器,版本是2,......
  • 武汉星起航电子商务有限公司:连接全球的亚马逊跨境电商孵化服务商
    在全球数字化浪潮的推动下,亚马逊跨境电商行业蓬勃发展,武汉星起航电子商务有限公司(以下简称“星起航”)以其实力雄厚的背景,成为业内备受瞩目的跨境电商孵化服务商。同时,跨境电商的兴起催生了物流、电商平台等相关行业的蓬勃发展,为经济增长提供了新的动力,并创造了更多就业机会。跨境电......
  • 解决adb connect 连接Android设备报错:由于目标计算机积极拒绝,无法连接
    1.手机打开开发者模式,然后打开USB调试2.使用USB数据线连接手机和电脑3.在PC端打开cmd命令窗口,输入adbdevices,可以看到已经连接的设备4.输入adbtcpip8888(设置端口号为8888)5.断开手机和电脑的连接adbconnectIP ......
  • Docker启用TLS进行安全连接
    目录生成TLS证书生成服务端证书生成ca文件生成密钥生成客户端证书清理文件并设置只读权限配置TLS证书重启服务Idea连接Dockercurl方式连接生成TLS证书官方地址:https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket生......
  • 【fgolang代码分享】golang如何连接oracle进行业务开发
    在我们的开发场景下虽然大部分我们都使用mysql就可以满足我们日常的开发任务,但是总有一些开发场景是需要我们是用oracle数据库的,今天我给大家带来golang的俩种连接oracle的方式。oracle简介oracle也是出自甲骨文公司,和mysql同门,也是全球最大的信息管理软件及服务供应商,Oracle开......