5a0d1bf55345025e42648cd4390c17ff
gin框架构架Api之:集成mysql连接池

安装 MySQL

构建api框架我们 用的是 MySQL,所以首先要确保服务器上安装有 MySQL,执行如下命令来检查是否安装了 MySQL(CentOS 7 上是 mariadb-server,CentOS 6 上是 mysql-server,这里以 CentOS 7 为例):

$ rpm -q mariadb-server

如果提示 package mariadb-server is not installed 则说明没有安装 MySQL,需要手动安装。如果出现 mariadb-server-xxx.xxx.xx.el7.x86_64 则说明已经安装。

安装 MySQL 的步骤为:

安装 MySQL 和 MySQL 客户端

$ sudo yum -y install mariadb  mariadb-server

启动 MySQL

$ sudo systemctl start mariadb

设置开机启动

$ sudo systemctl enable mariadb

设置初始密码

$ sudo mysqladmin -u root password root

因为版权原因,在 CentOS 7 中用的是基于 MySQL fork 的一个开源分支 MariaDB,它的功能和用法跟 MySQL 完全一样。

使用docker安装mysql

如果你觉得麻烦,请使用docker安装mysqldocker下安装mysql、redis

如果你的系统之前已经安装过 MySQL,需要在 conf/local/config.yaml 配置文件中更新配置。

添加配置

  mysql:
    video:
      host: "127.0.0.1"
      port: "3306"
      user: "root"
      password: "root"
      database: "qupost"
      #maxIdle,最大的空闲连接数
      maxIdle: 1000
      #maxActive,最大的激活连接数
      maxActive: 10000
      #idleTimeout,最大的空闲连接等待时间
      idleTimeout: 180

初始化数据库
在 system/mysql.go 中添加数据初始化代码

因为一个 API 服务器可能需要同时访问多个数据库,为了对多个数据库进行初始化和连接管理,这里定义了一个叫 Database 的 struct:

type Database struct {
    Self   *gorm.DB
    Docker *gorm.DB
} 

Database 结构体有个 Init() 方法用来初始化连接:
```
func (db *Database) Init() {
DB = &Database {

top Created with Sketch.