nacos详细安装部署与异常排解

nacos详细安装部署与异常排解

  • 官网
    官网链接:https://nacos.io/zh-cn/docs/quick-start.html
  • 异常排查解决
  1. Invalid default value for
  2. java.lang.IllegalArgumentException: db.num is null
  3. CannotGetJdbcConnectionException

一、预备环境准备

官方要求环境

  • OS
    windows 10
  • java
    1.8.0_144
  • maven
    Apache Maven 3.5.3
  • nacos版本
    Nacos 1.4.2-SNAPSHOT
  • mysql
mysql 版本Nacos 自带sql支持性
5.5.*不支持
5.7.*支持
  • 规模及部署模式
    单机;standalone

二、安装

  • 安装方式分两种
  1. 从 Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git

cd nacos/

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
  1. 官网下载zip 解压安装
    最新稳定版本 下载 nacos-server-$version.zip 包。
    解压即可,使用连接下载,3次都不成功,最后报了个服务器拒绝下载;启用迅雷也是下载不成功;

具体的git + idea +maven

idea拉取源码

在这里插入图片描述

maven打包

在这里插入图片描述

解压缩
  1. 在打包目录下找到macos-server-{version}.zip,目录如下:
    在这里插入图片描述
  2. zip解压
    在这里插入图片描述
  3. 将解压的文件放在自己常用的启动目录,比如我的D:\Program Files
建立数据库,执行sql脚本
  1. 新建数据库nacos_config,将nacos的conf下的nacos-mysql.sql执行
-- 版本要求5.7.+及以上

-- 建库
CREATE DATABASE `nacos_config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; 


/* 
 *授权
 *格式:grant 权限 on 数据库.表 to 用户名@登录主机 identified by "密码";
 *解释:授予用户/主机 通过 密码访问 库/表的 某种权限
 *
 * 权限:all 表示所有权限
 * 数据库:* 表示所有库
 * 表:* 表示所有表
 * 登录主机:% 表示所有主机
 */
grant all privileges on nacos_config.* to username@"%" identified by 'password';

-- 刷新系统权限表(授权后需要更新)
flush privileges;

在这里插入图片描述
navicat 执行sql
在这里插入图片描述

修改配置文件

修改conf/application.properties文件

spring.datasource.platform=mysql

db.num=1

db.url=jdbc:mysql://ip:port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=your username
db.password=your password

在这里插入图片描述

三、启动nacos

  1. 在{nacos_home}/bin目录下输入cmd,在弹出的控制台上输入如下命令
startup.cmd -m standalone

如图
在这里插入图片描述

  1. 访问服务 http://localhost:8848/nacos/
    初始账号 nacos ,初始密码 nacos
    在这里插入图片描述

四、安装异常

执行脚本报错

报错内容

执行建表语句报错:Invalid default value for 'gmt_create’
在这里插入图片描述
错误日志

[SQL] Query nacos-mysql start
[ERR] 1067 - Invalid default value for 'gmt_create'
[ERR] /*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *
 
略略略略
报错原因

使用了不支持的mysql数据库版本

解决方案

方案一
升级至5.7+数据库,
方案二
或者修改建表语句(这个较麻烦)

properties 文件mysql配置错误

报错内容

报错一
java.lang.IllegalArgumentException: db.num is null
报错二
org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
错误日志

org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
        at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:523)
        at com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl$SelectMasterTask.run(ExternalDataSourceServiceImpl.java:208)
        
略略略略
报错原因

properties中,nacos的元数据仓库地址配置错误

解决方案

仔细检查application.properties中关于mysql的配置项,如下

spring.datasource.platform=mysql
db.num=1
db.url=jdbc:mysql://ip:port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=your username
db.password=your password
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值