1.创建docker网卡,用于域名解析
docker network create --driver bridge mysql-master-slave
mysql连接数默认不够
set global max_connections=500;
set global mysqlx_max_connections=500;
参数 | 解释 |
---|---|
MYSQL_ROLE | MASTER 或 SLAVE,指定主从库 |
–net | 指定自定义的docker网卡提供域名解析功能 |
MASTER_HOST | 从库需要此参数,值为主库的域名,如下示例则为该容器名称 mysql-master |
2.部署主库
docker run -it --rm -m 400m -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROLE=MASTER --net mysql-master-slave --name mysql-master yuanxi2314/liyuan-mysql:0.0.1
// 若运行正常,则按住 Ctrl+P+Q 退出容器
3.部署从库
docker run -it --rm -m 400m -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROLE=SLAVE -e MASTER_HOST=mysql-master --net mysql-master-slave --name mysql-slave-00 yuanxi2314/liyuan-mysql:0.0.1
// 若运行正常,则按住 Ctrl+P+Q 退出容器
docker run -it --rm -m 400m -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROLE=SLAVE -e MASTER_HOST=mysql-master --net mysql-master-slave --name mysql-slave-01 yuanxi2314/liyuan-mysql:0.0.1
// 若运行正常,则按住 Ctrl+P+Q 退出容器
//至此一主二从部署完毕
4. 测试
//主库创建abc数据库
docker exec -it mysql-master mysql -uroot -p123456 -e "create database abc;"
//从库查看
docker exec -it mysql-slave-00 mysql -uroot -p123456 -e "show databases;"