Mysql 搭建主从复制

  • Docker Mysql 镜像启动命令(主库)

docker run --name mysql-master  -ti -d --privileged="true"  -p 3306:3306 alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized:20240221-8.0.32-2.3.0 mysql_keentune.sh

 

  • 修改临时密码
    • 如果您要使用mysql的root账户,进入到容器内部,可以通过如下命令查询到临时密码:

         cat /var/log/mysql/mysqld.log | grep password

  • mysql -u root -p   回车输入临时密码
  • ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';    通过这条命令修改密码
  • FLUSH PRIVILEGES;     立刻生效

 

  • 启动mysql从库(这里在命令中去掉了--net=host)

docker run --name mysql-slave  -ti -d --privileged="true"  -p 3308:3306 alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized:20240221-8.0.32-2.3.0 mysql_keentune.sh

  • 查看主库的IP地址 docker inspect mysql-master | grep IPAddress

  • 修改主库的my.cnf , 在里面添加server_id=1
    • docker cp mysql-master:/etc/my.cnf.d/mysql-server.cnf ./mysql-server.cnf    将容器中的文件copy到本地路径
    • 添加server_id=1
    • docker cp ./mysql-server.cnf mysql-master:/etc/my.cnf.d/mysql-server.cnf   再将文件copy回容器
    • docker restart mysql-master  重启容器

 

  • 修改主库的my.cnf , 在里面添加server_id=2  (方法同上)
  • 配置主服务器主从同步的用户
    • 进入容器,登陆mysql

CREATE USER 'replication_user'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';

FLUSH PRIVILEGES;

SHOW MASTER STATUS;    查看主节点的状态

  • 配置从服务器(和主服务器关联)
    • 进入容器,登陆mysql

CHANGE REPLICATION SOURCE TO SOURCE_HOST='172.17.0.8', SOURCE_USER='replication_user', SOURCE_PASSWORD='root', SOURCE_LOG_FILE='binlog.000002', SOURCE_LOG_POS=851;

START REPLICA; 启动从服务器复制进程

SHOW REPLICA STATUS\G  查看从服务器状态

  • 到这里主从配置成功啦~~~
  • 测试主从复制
    • 连接主服务器,进入mysql
      • create database mydatabase;
      • use mydatabase;
      • CREATE TABLE `test` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键' ,

`remark` varchar(255) DEFAULT NULL COMMENT '说明',

PRIMARY KEY (`id`) USING BTREE

)ENGINE=IMNODB DEFAULT CHARSET=utf8 COMMENT='test';

  • insert into mydatabase.test values (22,'test');
  • 连接从服务器,进入mysql
    • 查询从服务器表数据,发现此时数据同步过来了,测试ok!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值