配置主从数据库

目的:配置主从数据库,实现从数据库中数据与主数据库存储内容一致。

1.容器中创建主数据库

!!!由于每次重启ip地址都会变因此 最好固定容器ip地址

1.1先用docker network ls 查看本地的docker网络配置,mysqlnet是我后加的,默认是除mysqlnet以外的三个

1.2创建一个自己的docker网络配置,命令如下

docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mysqlnet

docker network 创建   --driver 对应的模式     --subnet 内网网段     --gateway 网关    网络配置的名称

1.3创建主数据库 记得加IP地址

docker run -itd --name mysql_3306 --privileged=true -p 3306:3306 -v /usr/local/software/mysql/3306/data:/var/lib/mysql -v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123 --network=mysqlnet --ip 172.18.12.2 mysql

2.修改my.cnf文件

2.1文件结构 /user/local/software/程序名称

                      

!includedir /etc/mysql/conf.d/
server-id=201
log-bin=mysql-bin
binlog_format=row
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
# Custom config should go here
!includedir /etc/mysql/conf.d/
server-id=200
log-bin=mysql-bin
binlog_format=row

3.master中创建slave账号操作

进入主数据库

[root@localhost conf]# docker exec -it mysql_master bash

登录

root@6c7b6078f4ec:/# mysql -u root -p

Enter password:

创建主从账号”slave”

mysql> create user 'slave'@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> use mysql
mysql> ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123';
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

获取master容器的状态

显示mysql_3306的主机状态
show master status;

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      157 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

获取mysql_master的ip地址

docker inspect 容器名称 |grep IPA

root@localhost conf]# docker inspect mysql_master |grep IPA
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAMConfig": null,
                    "IPAddress": "172.17.0.2",

4.mysql从服务器

修改从配置文件(复制粘贴人的使用要注意 " " 要自己打,经常会变成中午的)

创建从数据库

docker run -itd --name mysql_3310 --privileged=true -p 3310:3306 -v /usr/local/software/mysql/3310/data:/var/lib/mysql -v /usr/local/software/mysql/3310/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/software/mysql/3310/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123 --network=mysqlnet --ip 172.18.12.3 mysql

 进入mysql配置主从

change master to master_host='172.18.12.2',master_user='slave',master_password='123',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=157;

开启主从

start slave;

查看状态

mysql> show slave status \G;

看到这两个yes 就ok了

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值