您的位置:首页 > 新闻 > 热点要闻 > Mysql 搭建主从复制

Mysql 搭建主从复制

2024/12/21 21:42:13 来源:https://blog.csdn.net/weixin_44038236/article/details/142187668  浏览:    关键词: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!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com