Mac M1 安装 Nacos 操作及问题解决

打印 上一主题 下一主题

主题 810|帖子 810|积分 2430

nacos 依赖 mysql

先安装mysql ,这里使用的是8+版本,原因在于原本的 5.7 版本中并没有对 m1 的良好支持,如果启动会有报错说查询不到对应版本信息(虽然可以通过自定义 mirror 实现)
mysql 配置参考(docker-compose):
  1.   mysql:
  2.     image: mysql:8.0
  3.     container_name: mysql
  4.     restart: always
  5.     environment:
  6.       - MYSQL_ROOT_PASSWORD=root
  7.     ports:
  8.       - 3306:3306
  9.     volumes:
  10.       - ./mysql/data:/var/lib/mysql
  11.       - ./mysql/my.cnf:/etc/mysql/my.cnf
  12.       - ./mysql/initdb:/docker-entrypoint-initdb.d
  13.       - ./mysql/mysql-files:/var/lib/mysql-files
复制代码
安装 nacos

M1 支持版本nacos有限,这里要用zhusaidong/nacos-server-m1:2.0.3
  1. # 注意需要加版本号,否则会拉取失败
  2. docker pull zhusaidong/nacos-server-m1:2.0.3
复制代码
配置参考(docker-compose):
  1.   nacos:
  2.     image: zhusaidong/nacos-server-m1:2.0.3
  3.     container_name: nacos
  4.     restart: always
  5.     depends_on:
  6.       - mall4cloud-mysql
  7.     ports:
  8.       - 8848:8848
  9.       - 9848:9848
  10.       - 9849:9849
  11.     environment:
  12.       - JVM_XMS=256m
  13.       - JVM_XMX=256m
  14.       - MODE=standalone
  15.       - PREFER_HOST_MODE=hostname
  16.       - SPRING_DATASOURCE_PLATFORM=mysql
  17.       - MYSQL_SERVICE_HOST=XXXX
  18.       - MYSQL_SERVICE_DB_NAME=nacos
  19.       - MYSQL_SERVICE_USER=root
  20.       - MYSQL_SERVICE_PASSWORD=root
  21.       - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone==GMT%2B8
  22.     volumes:
  23.       - ./nacos/logs:/home/nacos/logs
复制代码
问题

mac m1 中nacos 连接显示No DataSource set
  1. Nacos Server did not start because dumpservice bean construction failure : No DataSource set
复制代码
mysql使用的是8+版本,所以记得添加serverTimezone=GMT%2B8
参考
  1. characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
复制代码
重点

我首先在nacos 的容器中使用 curl 命令查看
  1. curl localhost:3306
复制代码
结果是:
  1. docker curl: (7) Failed to connect to localhost port 3306: Connection refused
复制代码
顺着找下去原因
在容器外面是可以curl到容器的地址,但是就是在容量内不能curl连接到容器地址
这里直接使用电脑的 ip 代替 localhost 以及 127.0.0.1 来
附:mac 查找自己 ip 的cmd 命令
  1. ifconfig
复制代码
将 ip 填到MYSQL_SERVICE_HOST的配置项中
最终成功问题解决

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表