nacos1.1.0存储换成mysql登陆报错
更新
20191224更新,1.1.4 版本
已经没有这个问题,linux
和windows
下均可以正常使用
场景
nacos配置默认使用嵌入式数据库
将配置信息存储在内存中,重启之后,数据会消失,无法持久化
所以需要将数据持久化方式修改为mysql
官网教程
单机模式支持mysql
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
- 1.安装数据库,版本要求:5.6.5+
- 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
- 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow
再以单机模式启动nacos
页面可以正常打开,但是登陆报错
错误如下
2019-09-17 14:24:51,894 WARN Failure in @ExceptionHandler public void com.alibaba.nacos.config.server.exception.GlobalExceptionHandler.handleDataAccessException(javax.servlet.http.HttpServletResponse,org.springframework.dao.DataAccessException) throws org.springframework.dao.DataAccessException
org.springframework.jdbc.CannotGetJdbcConnectionException: PreparedStatementCallback; uncategorized SQLException for SQL [select ID,data_id,group_id,tenant_id,app_name,content from config_info where tenant_id=? limit 0,10]; SQL state [null]; error code [0]; Borrow prepareStatement from pool failed; nested exception is org.apache.commons.dbcp.SQLNestedException: Borrow prepareStatement from poolfailed at com.alibaba.nacos.config.server.exception.GlobalExceptionHandler.hand
leDataAccessException(GlobalExceptionHandler.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
......
在nacos
数据库中,执行此sql语句并没有问题
select ID,data_id,group_id,tenant_id,app_name,content from config_info where tenant_id=? limit 0,10
解决方案
使用集群的方式启动,就可以正常登陆(1.1.0版本有此问题)
修改cluster.conf
,指向本地
#it is ip
#example
localhost
localhost
localhost
集群启动
进入到nacos的启动目录中
执行启动命令
.\startup.cmd -m cluster
C:\Users\Administrator>D:
D:\>cd D:\nacos-1.1.0\distribution\target\nacos-server-1.1.0\nacos\bin
D:\nacos-1.1.0\distribution\target\nacos-server-1.1.0\nacos\bin>.\startup.cmd -m cluster