it编程 > 数据库 > Mysql

阿里云服务器MySQL与nacos配置

8人参与 2026-03-18 Mysql

(nacos 启动问题排查总结)

一、问题现象

在部署 nacos 时,容器启动后查看日志:

docker logs -f nacos 

日志中出现报错:

no datasource set

同时在日志中还会看到:

nacos dump service start

随后服务启动失败或无法正常加载配置。

二、问题分析

该错误显然说明 nacos 没有成功初始化数据库数据源。可能原因主要包括:

通过逐步检查:

1 检查 nacos 环境变量(容器间通信)

服务器中的 custom.env 文件内容:

cat /root/nacos/custom.env 

配置如下:

prefer_host_mode=hostname
mode=standalone
spring_datasource_platform=mysql
mysql_service_host=mysql
mysql_service_db_name=nacos
mysql_service_port=3306
mysql_service_user=root
mysql_service_password=改成你自己的
mysql_service_db_param=characterencoding=utf8&connecttimeout=1000&sockettimeout=3000&autoreconnect=true&usessl=false&allowpublickeyretrieval=true&servertimezone=asia/shanghai

这里笔者使用的阿里云服务器,数据库的容器命名就是mysql,所以这里“mysql_service_host=mysql”,利用同一网络下,容器之间能直接相互通信,配置检查后发现 数据库连接参数没有问题

2 检查 mysql 数据库(是否存在nacos数据库)

进入 mysql 容器:

docker exec -it mysql mysql -uroot -p 

然后查看数据库表:

use nacos;
show tables; 

此时我才发现:

empty set

说明 nacos 数据库表没有导入成功

三、问题原因

最终确认问题原因是:

在之前导入 nacos.sql 初始化脚本时,导入过程被中断,导致数据库表未完整创建。

因此 nacos 启动时无法找到需要的配置表,从而出现:no datasource set

四、解决方法

重新导入 nacos 初始化数据库脚本。

执行:

mysql -uroot -p nacos < nacos.sql 

或在 mysql 中执行:

source nacos.sql; 

导入完成后再次检查:

show tables; 

可以看到数据库中已生成多张表,例如:

config_info
config_tags_relation
group_capacity
his_config_info
permissions
roles
tenant_capacity
users

说明数据库初始化成功。

五、重新启动 nacos

重新启动容器:

docker restart nacos 

查看启动日志:

docker logs -f nacos 

日志显示:

tomcat started on port(s): 8848 (http) with context path '/nacos'

以及关键成功提示:

nacos started successfully in stand alone mode. use external storage

六、验证结果

浏览器访问:http://服务器ip:8848/nacos

登录账号:

nacos
nacos

成功进入控制台,说明 nacos 服务已正常运行并成功连接 mysql 数据库

七、总结

本次问题的根本原因是:

nacos 初始化数据库脚本导入不完整,导致数据库表缺失。

解决步骤:

到此这篇关于阿里云服务器mysql与nacos配置的文章就介绍到这了,更多相关阿里云mysql与nacos配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

MySQL远程连接配置:解决Host XXX is not allowed to connect错误

03-18

mysql行转列(7种方法)和列转行的实现

03-18

MySQL EXPLAIN 中 type 字段示例详解

03-18

举例详解Tomcat与Nginx、Apache的区别是什么

03-18

MySQL CRUD 查询、插入、更新、删除全实战指南

03-18

为什么说MySQL不建议使用delete删除数据

03-18

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论