[转]基于docker环境安装mysql并实现主从

前提:环境已经部署安装docker

1、使用Docker拉取MySQL镜像

$ docker pull mysql:5.7

2、安装主库master

2.1、创建主库挂载文件地址

mkdir -pv /usr/local/mysql/master/confmkdir -pv /usr/local/mysql/master/datamkdir -pv /usr/local/mysql/master/log

2.2、在conf下创建my.cnf文件

[mysqld]server_id=1log-bin= mysql-binexpire_logs_days=10#数据库名称忽略大小写lower_case_table_names=1log-bin= mysql-binread-only=0replicate-ignore-db=mysqlreplicate-ignore-db=sysreplicate-ignore-db=information_schemareplicate-ignore-db=performance_schema ###引用默认配置!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/

2.3、安装并运行一组命令

docker run --name mysqlmaster -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /usr/local/mysql/master/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/master/data:/var/lib/mysql -v /usr/local/mysql/master/log:/var/log/mysql --privileged=true -d mysql:5.7 #进入容器docker exec -it mysqlmaster bash #进入mysqlmysql -u root -p #创建slaver的账号--create user  'backup'@'%'  identified by 'backup'; #授权GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'backup'; #刷新权限flush privileges; #查看信息show master status \G;*************************** 1. row ***************************             File: mysql-bin.000003         Position: 439     Binlog_Do_DB: Binlog_Ignore_DB:Executed_Gtid_Set:1 row in set (0.00 sec) ERROR:No query specified

3、安装从库slave

3.1、创建从库挂载文件地址

mkdir -pv /usr/local/mysql/slave/confmkdir -pv /usr/local/mysql/slave/datamkdir -pv /usr/local/mysql/slave/log

3.2、配置文件my.cnf

[mysqld]server_id=2lower_case_table_names=1log-bin= mysql-binread-only=0replicate-ignore-db=mysqlreplicate-ignore-db=sysreplicate-ignore-db=information_schemareplicate-ignore-db=performance_schemaexplicit_defaults_for_timestamp=truebind-address = 0.0.0.0###引用默认配置!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/

3.3、安装并运行一组命令

docker run --name mysqlslave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -v /usr/local/mysql/slave/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/slave/data:/var/lib/mysql -v /usr/local/mysql/slave/log:/var/log/mysql --privileged=true -d mysql:5.7 #进入容器docker exec -it mysqlslave bash#进入mysqlmysql -u root -p#执行主从change master to master_host='192.168.100.16',master_port=3306,master_user='backup',master_password='backup',master_log_file='mysql-bin.000003',master_log_pos=439; #开启复制start slave; #查看主从是否成功show slave status \G;

正常情况下,SlaveIORunning 和 SlaveSQLRunning 都是Yes 及成功,操作主库验证从库即可。

备注:执行从库的master_log_file='mysql-bin.000003',master_log_pos=439;这些一定是主库的对应的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值