执行集成测试mysql使用docker部署
集成测试需要根据测试用例,使用flywayDB管理数据库的脚本信息,每次生产上线前,必须通过集成测试,验证数据的准确性,所以每次集成测试都是使用的docker的数据库实例mysql-5.7.16-instance-group1。
备注 这里不是完整项目的配置信息,只是跟docker-mysql相关的配置
使用docker compose启动脚本
-rw-r--r-- 1 root root 312 1月 15 10:47 docker-compose-mysql.yml -rw-r--r-- 1 root root 624 1月 15 17:06 mysqld_charset.cnf [root@wallbase ~]# docker-compose -f docker-compose-mysql.yml up -d
AI 代码解读
mysql迁移使用docker部署
- TZ: “Asia/Shanghai” 时区配置,默认是零时区所以需要自己修改
- “/data/mysql/data:/var/lib/mysql” mysql数据库持久化到宿主机磁盘上(其实测试是不需要保存到磁盘的,但是出于其他情况考虑数据会保留一个月)。
docker-compose-mysql.yml
version: "2.0"
services:
mysqldb:
image: mysql:5.7.16
container_name: mysql-5.7.16
restart: always
ports:
- "3306:3306"
environment:
TZ: "Asia/Shanghai"
volumes:
- "/data/mysql/data:/var/lib/mysql"
- "./mysqld_charset.cnf:/etc/mysql/conf.d/mysqld_charset.cnf"
AI 代码解读
mysql配置的注意内容
- autocommit = 1 默认提交事务,该配置文件是放在/etc/mysql/conf.d的配置项会覆盖之前的配置项
mysqld_charset.cnf
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8mb4
[mysqld]
port = 3306
autocommit = 1
#character_set_filesystem = utf8
character_set_server = utf8
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
init_connect = 'SET collation_connection = utf8_general_ci'
skip-character-set-client-handshake
max_allowed_packet = 100M
default-storage-engine = INNODB
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
AI 代码解读