-
Notifications
You must be signed in to change notification settings - Fork 418
Open
Description
问题描述
在云服务器部署后,默认设置下,可正常运行并远程访问,希望修改为mysql数据库驱动,我已在数据库中创建了空的engineer库,但修改配置文件app.conf及app2.conf后,无法正确识别到数据库配置的改变,仍调用sqllite。
报错
./engineercms
panic: 连接数据库失败, error=unable to open database file: no such file or directory
goroutine 1 [running]:
github.com/3xxx/engineercms/models.init.0()
/root/gocode/src/github.com/3xxx/engineercms/models/AdminModel.go:169 +0x1fd4
查看这个报错文件发现mysql配置被注释掉了.始于第106行
db_type, err := web.AppConfig.String("db_type")
db_host, err := web.AppConfig.String("db_host")
db_port, err := web.AppConfig.String("db_port")
db_user, err := web.AppConfig.String("db_user")
db_pass, err := web.AppConfig.String("db_pass")
db_name, err := web.AppConfig.String("db_name")
db_path, err := web.AppConfig.String("db_path")
db_sslmode, err := web.AppConfig.String("db_sslmode")
if err != nil {
logs.Error(err)
}
switch db_type {
// 1.注册驱动
// case "mysql":
// orm.RegisterDriver("mysql", orm.DRMySQL)
// dns = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local", db_user, db_pass, db_host, db_port, db_name)
// // 注册xorm
// // var err error
// // engine, err = xorm.NewEngine(db_type, dns)
// // if err != nil {
// // log.Println(err)
// // }
// break
case "postgres":
orm.RegisterDriver("postgres", orm.DRPostgres)
dns = fmt.Sprintf("dbname=%s host=%s user=%s password=%s port=%s sslmode=%s", db_name, db_host, db_user, db_pass, db_port, db_sslmode)
case "sqlite3":
orm.RegisterDriver("sqlite", orm.DRSqlite)
if db_path == "" {
db_path = "./"
}
dns = fmt.Sprintf("%s%s.db", db_path, db_name)
break
default:
logs.Critical("Database driver is not allowed:", db_type)
}
// 2.beego注册默认数据库
orm.RegisterDataBase("default", db_type, dns)
部署版本
20250718engineercms_publish
20250314engineercms(linux)
mysql 5.7.43
部署环境
ubuntu22.04
修改后的配置
app.conf
###数据库目前仅支持mysql,postgresql,sqlite3,后续会添加更多的数据库支持。
###数据库的配置信息需要填写,程序会根据配置自动建库
####mysql数据库链接信息
####必须先用Navicat for MySQL之类的工具(或命令)在mysql里建立一个数据库,名称为engineer
db_host = 127.0.0.1
db_port = 3306
db_user = engineer
db_pass = 123456
db_name = engineer
db_type = mysql
#####postgresql数据库链接信息
#db_host = localhost
#db_port = 5432
#db_user = postgres
#db_pass = postgres
#db_name = engineer
#db_type = postgres
#db_sslmode=disable
#########sqlite3数据库链接信息
###db_path 是指数据库保存的路径,默认是在项目的根目录
# db_path = database/
# db_name = engineer
# db_type = sqlite3
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels