Skip to content

[Bug]: yaml配置文件db-list 配置多数据源无法运行的问题 #2015

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
unbelievableTang opened this issue Apr 18, 2025 · 15 comments
Assignees
Labels
bug Something isn't working

Comments

@unbelievableTang
Copy link

gin-vue-admin 版本

v2.8.0

Node 版本

22.14.0

Golang 版本

1.24.2

是否依旧存在

可以

bug描述

1.以下是我的配置文件中db-list部分截取
db-list: - type: mysql alias-name: "mysql_main" # 主数据库别名(唯一标识) prefix: "" port: "3306" config: "charset=utf8mb4&parseTime=True&loc=Local" db-name: "gva" # MySQL 数据库名 username: "root" # MySQL 用户名 password: "xxx" # MySQL 密码 path: "192.168.5.xxx" # MySQL 主机地址 engine: "" log-mode: "error" max-idle-conns: 10 max-open-conns: 100 singular: false log-zap: false disable: false # 必须为 false 启用该数据库 - type: mssql alias-name: "sqlserver_db" path: "192.168.5.247" port: "1433" db-name: "hikvision" username: "sa" password: "xxx" disable: false

2.以下是console报错

GOROOT=D:\Program Files\Go #gosetup GOPATH=C:\Users\xiwei\go #gosetup GOPROXY=https://goproxy.cn,direct #gosetup "D:\Program Files\Go\bin\go.exe" build -o C:\Users\xiwei\AppData\Local\JetBrains\GoLand2024.3\tmp\GoLand\___go_build_github_com_flipped_aurora_gin_vue_admin_server.exe github.com/flipped-aurora/gin-vue-admin/server #gosetup C:\Users\xiwei\AppData\Local\JetBrains\GoLand2024.3\tmp\GoLand\___go_build_github_com_flipped_aurora_gin_vue_admin_server.exe #gosetup 2025/04/18 16:39:36 maxprocs: Leaving GOMAXPROCS=16: CPU quota undefined 您正在使用gin模式的debug环境名称,config的路径为config.yaml D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51 [info] replacing callback gorm:createfrom D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51 D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51 [info] replacing callbackgorm:update` from D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
[error] failed to initialize database, got error unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connectex: No connection could be made because the target machine actively refused it.panic: unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connectex: No connection could be made because the target machine actively refused it.

goroutine 1 [running]:
github.com/flipped-aurora/gin-vue-admin/server/initialize.GormMssqlByConfig({{{0x0, 0x0}, {0xc000cd33b4, 0x4}, {0x0, 0x0}, {0xc000cd33c0, 0x9}, {0xc000cd33d8, 0x2}, ...}})
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:52 +0x356
github.com/flipped-aurora/gin-vue-admin/server/initialize.DBList()
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/db_list.go:21 +0x165
main.main()
D:/magnific/HRMS-GO/gin-vue-admin/server/main.go:37 +0xb7

Process finished with the exit code 2`

3.假如db-list mssql这段去掉能运行成功,但是系统找不到数据库,登录页报错用户不存在。

4.假如不配置db-list 在外部单单配置mysql属性是能启动的,登录页也能正常登录

修改建议

No response

@bypanghu
Copy link
Member

看报错是没有读到你的 path,你可以截图看看你的对应配置文件不,因为我本地配置两个 pgsql 是能运行的

@unbelievableTang
Copy link
Author

Image

以下是全部内容
`aliyun-oss:
endpoint: yourEndpoint
access-key-id: yourAccessKeyId
access-key-secret: yourAccessKeySecret
bucket-name: yourBucketName
bucket-url: yourBucketUrl
base-path: yourBasePath
autocode:
web: web/src
root: D:\magnific\HRMS-GO\gin-vue-admin
server: server
module: github.com/flipped-aurora/gin-vue-admin/server
ai-path: ""
aws-s3:
bucket: xxxxx-10005608
region: ap-shanghai
endpoint: ""
secret-id: your-secret-id
secret-key: your-secret-key
base-url: https://gin.vue.admin
path-prefix: github.com/flipped-aurora/gin-vue-admin/server
s3-force-path-style: false
disable-ssl: false
captcha:
key-long: 2
img-width: 240
img-height: 80
open-captcha: 0
open-captcha-timeout: 3600
cloudflare-r2:
bucket: xxxx0bucket
base-url: https://gin.vue.admin.com
path: uploads
account-id: xxx_account_id
access-key-id: xxx_key_id
secret-access-key: xxx_secret_key
cors:
mode: strict-whitelist
whitelist:
- allow-origin: example1.com
allow-methods: POST, GET
allow-headers: Content-Type,AccessToken,X-CSRF-Token, Authorization, Token,X-Token,X-User-Id
expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type
allow-credentials: true
- allow-origin: example2.com
allow-methods: GET, POST
allow-headers: content-type
expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type
allow-credentials: true
db-list:
- type: mysql
alias-name: "mysql_main" # 主数据库别名(唯一标识)
prefix: ""
port: "3306"
config: "charset=utf8mb4&parseTime=True&loc=Local"
db-name: "gva" # MySQL 数据库名
username: "root" # MySQL 用户名
password: "xxx" # MySQL 密码
path: "192.168.5.xxx" # MySQL 主机地址
engine: ""
log-mode: "error"
max-idle-conns: 10
max-open-conns: 100
singular: false
log-zap: false
disable: false # 必须为 false 启用该数据库
- type: mssql
alias-name: "sqlserver_db"
path: "192.168.5.xxx"
port: "1433"
db-name: "hikvision"
username: "sa"
password: xxx
disable: false
disk-list:
- mount-point: /
email:
to: xxx@qq.com
from: xxx@163.com
host: smtp.163.com
secret: xxx
nickname: test
port: 465
is-ssl: true
excel:
dir: ./resource/excel/
hua-wei-obs:
path: you-path
bucket: you-bucket
endpoint: you-endpoint
access-key: you-access-key
secret-key: you-secret-key
jwt:
signing-key: 9f7fd89a-ae50-4e56-9c67-48a3db3d30b4
expires-time: 7d
buffer-time: 1d
issuer: qmPlus
local:
path: uploads/file
store-path: uploads/file
minio:
endpoint: yourEndpoint
access-key-id: yourAccessKeyId
access-key-secret: yourAccessKeySecret
bucket-name: yourBucketName
use-ssl: false
base-path: ""
bucket-url: http://host:9000/yourBucketName
mongo:
coll: ""
options: ""
database: ""
username: ""
password: ""
auth-source: ""
min-pool-size: 0
max-pool-size: 100
socket-timeout-ms: 0
connect-timeout-ms: 0
is-zap: false
hosts:
- host: ""
port: ""
#mssql:

prefix: ""

port: ""

config: ""

db-name: ""

username: ""

password: ""

path: ""

engine: ""

log-mode: ""

max-idle-conns: 10

max-open-conns: 100

singular: false

log-zap: false

#mysql:

prefix: ""

port: "3306"

config: charset=utf8mb4&parseTime=True&loc=Local

db-name: gva

username: root

password: "xxx"

path: 192.168.5.xxx

engine: ""

log-mode: error

max-idle-conns: 10

max-open-conns: 100

singular: false

log-zap: false

oracle:
prefix: ""
port: ""
config: ""
db-name: ""
username: ""
password: ""
path: ""
engine: ""
log-mode: ""
max-idle-conns: 10
max-open-conns: 100
singular: false
log-zap: false
pgsql:
prefix: ""
port: ""
config: ""
db-name: ""
username: ""
password: ""
path: ""
engine: ""
log-mode: ""
max-idle-conns: 10
max-open-conns: 100
singular: false
log-zap: false
qiniu:
zone: ZoneHuaDong
bucket: ""
img-path: ""
access-key: ""
secret-key: ""
use-https: false
use-cdn-domains: false
redis:
name: ""
addr: 127.0.0.1:6379
password: ""
db: 0
useCluster: false
clusterAddrs:
- 172.21.0.3:7000
- 172.21.0.4:7001
- 172.21.0.2:7002
redis-list:
- name: cache
addr: 127.0.0.1:6379
password: ""
db: 0
useCluster: false
clusterAddrs:
- 172.21.0.3:7000
- 172.21.0.4:7001
- 172.21.0.2:7002
sqlite:
prefix: ""
port: ""
config: ""
db-name: ""
username: ""
password: ""
path: ""
engine: ""
log-mode: ""
max-idle-conns: 10
max-open-conns: 100
singular: false
log-zap: false
system:
db-type: mysql
oss-type: local
multi-database: true # 启用多数据库支持
router-prefix: ""
addr: 8888
iplimit-count: 15000
iplimit-time: 3600
use-multipoint: false
use-redis: false
use-mongo: false
use-strict-auth: false
tencent-cos:
bucket: xxxxx-10005608
region: ap-shanghai
secret-id: your-secret-id
secret-key: your-secret-key
base-url: https://gin.vue.admin
path-prefix: github.com/flipped-aurora/gin-vue-admin/server
zap:
level: info
prefix: '[github.com/flipped-aurora/gin-vue-admin/server]'
format: console
director: log
encode-level: LowercaseColorLevelEncoder
stacktrace-key: stacktrace
show-line: true
log-in-console: true
retention-day: -1`

地址和密码确认是对的,因为我本地用navicat或者用java的springboot项目配置多数据源也都能连上

看报错是没有读到你的 path,你可以截图看看你的对应配置文件不,因为我本地配置两个 pgsql 是能运行的

@bypanghu
Copy link
Member

你第二个加上 config 这些参数试试?

@pixelmaxQm
Copy link
Collaborator

mssql缺少config参数导致连接失败

@unbelievableTang
Copy link
Author

mssql缺少config参数导致连接失败

依然有报错

Image

db-list:
    - type: mysql
      alias-name: "mysql_main"  # 主数据库别名(唯一标识)
      prefix: ""
      port: "3306"
      config: "charset=utf8mb4&parseTime=True&loc=Local"
      db-name: "gva"           # MySQL 数据库名
      username: "root"         # MySQL 用户名
      password: "xxxxxx"       # MySQL 密码
      path: "192.168.5.247"    # MySQL 主机地址
      engine: ""
      log-mode: "error"
      max-idle-conns: 10
      max-open-conns: 100
      singular: false
      log-zap: false
      disable: false           # 必须为 false 启用该数据库
    - type: mssql
      alias-name: "sqlserver_db"
      path: "192.168.5.249"
      config: "charset=utf8mb4&parseTime=True&loc=Local"
      port: "1433"
      db-name: "hikvision"
      username: "sa"
      password: "xxxxxxx"
      disable: false
GOROOT=D:\Program Files\Go #gosetup
GOPATH=C:\Users\xiwei\go #gosetup
GOPROXY=https://goproxy.cn,direct #gosetup
"D:\Program Files\Go\bin\go.exe" build -o C:\Users\xiwei\AppData\Local\JetBrains\GoLand2024.3\tmp\GoLand\___go_build_github_com_flipped_aurora_gin_vue_admin_server.exe github.com/flipped-aurora/gin-vue-admin/server #gosetup
C:\Users\xiwei\AppData\Local\JetBrains\GoLand2024.3\tmp\GoLand\___go_build_github_com_flipped_aurora_gin_vue_admin_server.exe #gosetup
2025/04/21 13:39:42 maxprocs: Leaving GOMAXPROCS=16: CPU quota undefined
您正在使用gin模式的debug环境名称,config的路径为config.yaml
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
[info] replacing callback `gorm:create` from D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
[info] replacing callback `gorm:update` from D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
[error] failed to initialize database, got error unable to open tcp connection with host 'localhost:1433': dial tcp 127.0.0.1:1433: connectex: No connection could be made because the target machine actively refused it.panic: unable to open tcp connection with host 'localhost:1433': dial tcp 127.0.0.1:1433: connectex: No connection could be made because the target machine actively refused it.

goroutine 1 [running]:
github.com/flipped-aurora/gin-vue-admin/server/initialize.GormMssqlByConfig({{{0x0, 0x0}, {0xc000cc73ac, 0x4}, {0xc000036750, 0x28}, {0xc000cc73b7, 0x9}, {0xc000cc73c8, 0x2}, ...}})
	D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:52 +0x356
github.com/flipped-aurora/gin-vue-admin/server/initialize.DBList()
	D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/db_list.go:21 +0x165
main.main()
	D:/magnific/HRMS-GO/gin-vue-admin/server/main.go:37 +0xb7

Process finished with the exit code 2

另外还有一个问题
假如我只在db-list中配置一个mysql,启动是可以的。
但是首页登录不进去

Image

`db-list:
- type: mysql
alias-name: "mysql_main" # 主数据库别名(唯一标识)
prefix: ""
port: "3306"
config: "charset=utf8mb4&parseTime=True&loc=Local"
db-name: "gva" # MySQL 数据库名
username: "root" # MySQL 用户名
password: "xxxx" # MySQL 密码
path: "192.168.5.247" # MySQL 主机地址
engine: ""
log-mode: "error"
max-idle-conns: 10
max-open-conns: 100
singular: false
log-zap: false
disable: false # 必须为 false 启用该数据库

- type: mssql

alias-name: "sqlserver_db"

path: "192.168.5.249"

config: "charset=utf8mb4&parseTime=True&loc=Local"

port: "1433"

db-name: "hikvision"

username: "sa"

password: "xxxx"

disable: false`

Image

Image

@unbelievableTang
Copy link
Author

unbelievableTang commented Apr 21, 2025

只在dblist中配置一个mysql,登录前debug了一下,配置文件的alias-name是找到了,但是最终应该没有查我配置的数据库

Image

@unbelievableTang
Copy link
Author

Image

这里应该不对吧?
我是通过GVA_DBList 定位数据库的,为啥这边是global.GVA_DB?加入用global.GVA_DB应该在配置里面定义好主数据库之类的东西

@bypanghu
Copy link
Member

dblist 并不会作为主程序使用,他只是作为你的业务数据库,所以你需要将主数据库配置在默认的地方

@unbelievableTang
Copy link
Author

dblist 并不会作为主程序使用,他只是作为你的业务数据库,所以你需要将主数据库配置在默认的地方

也就是说,我的主数据库是mysql,副数据库mssql。就是db-list外面配置一下MySQL.里面配置一下msssql对吗?
现在我就是按照这样配置的,mssql连接还是有问题。。。

db-list: - type: mssql alias-name: "sqlserver_db" path: "192.168.5.249" config: "charset=utf8mb4&parseTime=True&loc=Local" port: "1433" db-name: "hikvision" username: "sa" password: "xxx" engine: "" log-mode: "error" max-idle-conns: 10 max-open-conns: 100 singular: false log-zap: false disable: false # 必须为 false 启用该数据库

`GOROOT=D:\Program Files\Go #gosetup
GOPATH=C:\Users\xiwei\go #gosetup
GOPROXY=https://goproxy.cn,direct #gosetup
"D:\Program Files\Go\bin\go.exe" build -o C:\Users\xiwei\AppData\Local\JetBrains\GoLand2024.3\tmp\GoLand___go_build_github_com_flipped_aurora_gin_vue_admin_server.exe github.com/flipped-aurora/gin-vue-admin/server #gosetup
C:\Users\xiwei\AppData\Local\JetBrains\GoLand2024.3\tmp\GoLand___go_build_github_com_flipped_aurora_gin_vue_admin_server.exe #gosetup
2025/04/21 17:12:24 maxprocs: Leaving GOMAXPROCS=16: CPU quota undefined
您正在使用gin模式的debug环境名称,config的路径为config.yaml
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:51
[error] failed to initialize database, got error unable to open tcp connection with host 'localhost:1433': dial tcp 127.0.0.1:1433: connectex: No connection could be made because the target machine actively refused it.panic: unable to open tcp connection with host 'localhost:1433': dial tcp 127.0.0.1:1433: connectex: No connection could be made because the target machine actively refused it.

goroutine 1 [running]:
github.com/flipped-aurora/gin-vue-admin/server/initialize.GormMssqlByConfig({{{0x0, 0x0}, {0xc000cad27c, 0x4}, {0xc0000da570, 0x28}, {0xc000cad287, 0x9}, {0xc000cad298, 0x2}, ...}})
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/gorm_mssql.go:52 +0x356
github.com/flipped-aurora/gin-vue-admin/server/initialize.DBList()
D:/magnific/HRMS-GO/gin-vue-admin/server/initialize/db_list.go:21 +0x165
main.main()
D:/magnific/HRMS-GO/gin-vue-admin/server/main.go:37 +0xb7

Process finished with the exit code 2`

@unbelievableTang
Copy link
Author

db-list:
- type: mssql
alias-name: "sqlserver_db"
path: "192.168.5.249"
config: "charset=utf8mb4&parseTime=True&loc=Local"
port: "1433"
db-name: "hikvision"
username: "sa"
password: "xxxx"
engine: ""
log-mode: "error"
max-idle-conns: 10
max-open-conns: 100
singular: false
log-zap: false
disable: false # 必须为 false 启用该数据库

@unbelievableTang
Copy link
Author

所以能给个解决mssql连不上的问题的思路吗

@pixelmaxQm
Copy link
Collaborator

去搞个mssql的初始化看看正确的配置 然后复制过来

@unbelievableTang
Copy link
Author

去搞个mssql的初始化看看正确的配置 然后复制过来

Image

Image

2025/05/01 00:06:30 D:/magnific/HRMS-GO/gin-vue-admin/server/service/system/sys_initdb_mssql.go:61
[error] failed to initialize database, got error unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connectex: No connection could be made because the target machine actively refused it.
[github.com/flipped-aurora/gin-vue-admin/server]2025-05-01 00:06:30.006 error D:/magnific/HRMS-GO/gin-vue-admin/server/api/v1/system/sys_initdb.go:34 自动创建数据库失败! {"error": "unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connectex: No connection could be made because the target machine actively refused it."}
[GIN] 2025/05/01 - 00:06:30 | 200 | 23.1759ms | 127.0.0.1 | POST "/init/initdb"

@unbelievableTang
Copy link
Author

Image

@pixelmaxQm
Copy link
Collaborator

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy