Fabric 1.4 beego连接docker mysql
Posted 杰西啊杰西
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fabric 1.4 beego连接docker mysql相关的知识,希望对你有一定的参考价值。
说在前面
由于cenos8安装的mysql8和项目不符,所以这里开一个mysql5.7的docker来使用
目录
一、停止掉本机安装的mysql
停止掉 mysql8 服务
service mysql stop
二、创建文件夹
找一个地方,创建文件夹conf,db,db是存放数据的,不管你docker重启多少次,只要db文件夹存在(因为是你docker映射的地方,后面会讲),数据就存在
三、在conf文件夹下编写my.cnf数据库配置文件
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
port=3307 # 为了和本机的区别开
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
四、编写docker-compose
查看docker网络,使用pic_network
docker network ls
注意,如果要和本主机使用同样的网络,host就行
version: '2'
services:
mysql:
network_mode: "perinfo_network"
container_name: "pic_mysql"
image: "docker.io/mysql:5.7"
restart: always
environment:
MYSQL_ROOT_PASSWORD: xxxxxx #你的root密码
MYSQL_ROOT_HOST: "%"
TZ: Asia/Shanghai
volumes:
- "./db:/var/lib/mysql"
- "./conf/my.cnf:/etc/my.cnf"
ports:
- "3307:3307"
五、启动docker
输出日志法
docker-compose up
后台启动法
docker-compose up -d
六、进入docker的mysql,创建host为127.0.0.1的用户并授权
1、进入docker
docker exec -it pic_mysql bash #pic_mysql是你的容器名,使用容器id也可
2、进入mysql
mysql -u root -p
3、使用mysql数据库
use mysql;
4、创建host为127.0.0.1的用户
create user 'root'@'127.0.0.1' identified by 'xxxxxx'; # xxxxxx是你的root密码
5、查看user
select user,host from user;
6、授权
参考博客:https://www.cnblogs.com/kerrycode/p/7597258.html
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION
7、更新
flush privileges;
PS:这些步骤其实可以使用init文件完成
① 创建文件夹init(Makefile不管他)
② 在init文件夹下创建init.sql文件(随便你取啥子.sql)
这些是创建容器后初始化的sql命令
use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'perinfo68';
flush privileges;
create database pic;
③ 修改docker-compose.yaml文件,映射入口初始化
version: '2'
services:
mysql:
network_mode: "perinfo_network"
container_name: "pic_mysql"
image: "docker.io/mysql:5.7"
restart: always
environment:
MYSQL_ROOT_PASSWORD: perinfo68
MYSQL_ROOT_HOST: "%"
TZ: Asia/Shanghai
volumes:
- "./db:/var/lib/mysql"
- "./conf/my.cnf:/etc/my.cnf"
- "./init:/docker-entrypoint-initdb.d/" # 增加了这一句
ports:
- "3307:3307"
然后启动docker-compose up -d
即可
七、连接navicat
八、beego连接数据库
查看docker容器的ip地址(因为在pic_network网络中,所以肯定和host网络不同)
docker inspect pic_mysql
在conf/mysql.conf中如下配置
######数据库配置######
#mysql
mysqladmin = "root"
mysqlPwd = "xxxxxxxx"
mysqlUrl = "192.168.224.2:3307"
mysqlDB = "pic"
注意:如果docker使用的是host网络,没有使用pic_network网络,那么mysqlUrl就是“127.0.0.1”
同时,gorm的连接语句也要改为
func init() {
mysqladmin := beego.AppConfig.String("mysqladmin")
mysqlPwd := beego.AppConfig.String("mysqlPwd")
mysqlDB := beego.AppConfig.String("mysqlDB")
mysqlUrl :=beego.AppConfig.String("mysqlUrl")
DB, err =
gorm.Open("mysql", mysqladmin+":"+mysqlPwd+"@tcp("+mysqlUrl+")"+"/"+mysqlDB+"?charset=utf8"+
"&parseTime=True&loc=Local")
if err != nil {
logs.Error(err)
logs.Error("连接MySql数据库失败")
} else {
logs.Info("连接MySql数据库成功")
}
DB.AutoMigrate(
//你的数据库表
)
}
九、启动beego连接成功
bee run
postman接口测试成功
navicat可以看到创建的表
以上是关于Fabric 1.4 beego连接docker mysql的主要内容,如果未能解决你的问题,请参考以下文章