Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrDBAlreadyInitialized = errors.New("db: mysql has already been initialized, call Close() first")
ErrDBAlreadyInitialized 表示 MySQL 单例已经初始化,调用方需要先 Close() 再重新初始化.
Functions ¶
func CloseRedis ¶ added in v0.1.3
func CloseRedis() error
CloseRedis 关闭共享 Redis 客户端并重置单例,便于重新初始化. 供持有同一客户端的组件(如 util.Cache)释放连接时使用。 未初始化时调用是安全的,会返回 nil.
Types ¶
type MySQLOptions ¶
type MySQLOptions struct {
Host string
Username string
Password string
Database string
MaxIdleConnections int
MaxOpenConnections int
MaxConnectionLifeTime time.Duration
LogLevel int
}
MySQLOptions 定义 MySQL 数据库的选项.
func (*MySQLOptions) DSN ¶
func (o *MySQLOptions) DSN() (string, error)
DSN 从 MySQLOptions 返回 DSN. 显式设置读写/连接超时,避免下游异常时 goroutine 长时间阻塞; loc 固定为 UTC,时间统一按 UTC 存储,展示时再转换为本地时区.
转义/校验说明(go-sql-driver/mysql 的 DSN 不支持对用户名、密码转义):
- database 通过 url.PathEscape 转义,因此可以包含 '/'、'?'、'&'、'%' 等字符;
- username 拒绝 ':'(第一处 ':' 会被驱动解析为密码分隔符)和控制字符;
- password 保留原样,驱动从 DSN 末尾向前查找最后一个 '@' 和 '/',因此密码中的 ':'、'@'、'/'、'?' 不会破坏解析;但仍拒绝换行等控制字符;
- host 必须非空且不能包含控制字符或空白(net 地址位于 tcp(...) 中).
Click to show internal directories.
Click to hide internal directories.