WSO2 MI Dashboard无法连接MySQL,仍用默认H2数据库求助
1. 先确认配置文件没改错地方
别搞混MI Server和Dashboard的配置文件!Dashboard的核心配置在 <DASHBOARD_HOME>/conf/dashboard/deployment.toml,不是MI Server的deployment.toml,很多人误改Server的配置白忙活。
2. MySQL驱动放对目录了吗?
把MySQL JDBC驱动(比如mysql-connector-java-8.0.xx.jar)丢去 <DASHBOARD_HOME>/lib,不是MI Server的lib文件夹。另外驱动版本要和MySQL匹配:MySQL 8.x用8.x驱动,5.7就用5.x的,版本不兼容直接连不上。
3. 检查Dashboard的数据库配置是否正确
打开Dashboard的deployment.toml,确保数据库配置如下(替换成你的MySQL信息):
[database.apim_db] type = "mysql" url = "jdbc:mysql://localhost:3306/apim_db?useSSL=false&requireSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true" username = "你的数据库用户名" password = "你的数据库密码" driver = "com.mysql.cj.jdbc.Driver"
注意:得提前在MySQL里创建
apim_db数据库,然后执行Dashboard自带的初始化脚本,路径是<DASHBOARD_HOME>/dbscripts/mysql/apim_db.sql,别只跑MI Server的脚本!
4. 清空旧的H2数据残留
如果之前用默认H2启动过Dashboard,一定要删掉<DASHBOARD_HOME>/database下的H2数据文件,不然Dashboard可能优先读旧数据,就算配置对了也没用。
5. 看日志找具体错误
启动Dashboard后去<DASHBOARD_HOME>/logs/wso2carbon.log搜关键词:
- 出现
ClassNotFoundException:驱动没放对或者版本不对 - 出现
Access denied:数据库用户名/密码错了,或者没给权限 - 出现
Connection refused:MySQL没启动,或者端口、IP写错了
6. 版本兼容性要注意
你用的Dashboard是4.1.0,对应支持MySQL 5.7或8.0,别用太老或太新的MySQL版本,比如MySQL 8.0如果开了严格模式,可能需要调整URL里的参数。
内容的提问来源于stack exchange,提问作者ahinsa

