Skip to content

Commit 8b1c36b

Browse files
committed
支持MySql tls连接
1 parent 269c3a2 commit 8b1c36b

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

config.example.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ mysql:
44
password: chatnio123456
55
port: 3306
66
user: root
7+
tls: false
78

89
redis:
910
host: localhost

connection/database.go

+15-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package connection
33
import (
44
"chat/globals"
55
"chat/utils"
6+
"crypto/tls"
67
"database/sql"
78
"fmt"
9+
"github.com/go-sql-driver/mysql"
810
_ "github.com/go-sql-driver/mysql"
911
_ "github.com/mattn/go-sqlite3"
1012
"github.com/spf13/viper"
@@ -32,15 +34,25 @@ func getConn() *sql.DB {
3234
return db
3335
}
3436

35-
// connect to MySQL
36-
db, err := sql.Open("mysql", fmt.Sprintf(
37+
mysqlUrl := fmt.Sprintf(
3738
"%s:%s@tcp(%s:%d)/%s",
3839
viper.GetString("mysql.user"),
3940
viper.GetString("mysql.password"),
4041
viper.GetString("mysql.host"),
4142
viper.GetInt("mysql.port"),
4243
viper.GetString("mysql.db"),
43-
))
44+
)
45+
if viper.GetBool("mysql.tls") {
46+
mysql.RegisterTLSConfig("tls", &tls.Config{
47+
MinVersion: tls.VersionTLS12,
48+
ServerName: viper.GetString("mysql.host"),
49+
})
50+
51+
mysqlUrl += "?tls=tls"
52+
}
53+
54+
// connect to MySQL
55+
db, err := sql.Open("mysql", mysqlUrl)
4456

4557
if pingErr := db.Ping(); err != nil || pingErr != nil {
4658
errMsg := utils.Multi[string](err != nil, utils.GetError(err), utils.GetError(pingErr)) // err.Error() may contain nil pointer

0 commit comments

Comments
 (0)