当前位置: 首页 > news >正文

建设银行租房网站6手机排行榜2024前十名最新

建设银行租房网站6,手机排行榜2024前十名最新,大观网站建设,建网站卖广告mysql设置主从复制模式似乎很容易,关键在于1)主库启用二进制日志,2)从库将主库设为主库。另外,主从复制,复制些什么?从我现在获得的还很少的经验来看,复制的内容有表,用户…

mysql设置主从复制模式似乎很容易,关键在于1)主库启用二进制日志,2)从库将主库设为主库。另外,主从复制,复制些什么?从我现在获得的还很少的经验来看,复制的内容有表,用户,用户权限,推测其他像视图、存储过程、触发器、索引之类应该也会自动复制。

一、设置主从复制

为方便测试,将mysql放在docker里跑,创建了两个mysql容器,一主一从:

1、创建网络

创建一个docker网络,主库和从库,包括之后应用读写分离的proxysql都使用这个网络,方便它们之间互相访问。

sudo docker network create mysql-tier --driver bridge

2、创建主库

创建时,将数据库文件、日志等挂载到宿主机,万一删除了docker容器,还可以方便地创建回来。

sudo docker run --name mysql-1 \
--network mysql-tier \
-p 3308:3306 \
--restart=always \
-v /home/admin/mysql1/mysql-files:/var/lib/mysql-files \
-v /home/admin/mysql1/conf:/etc/mysql \
-v /home/admin/mysql1/log:/var/log/mysql \
-v /home/admin/mysql1/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=data2025 \
-d mysql:8.0.23 \
--server-id=1 --log-bin=mysql-bin \
--lower_case_table_names=1

关键的一句

--server-id=1 --log-bin=mysql-bin \

3、创建从库

sudo docker run --name mysql-2 \
--network mysql-tier \
-p 3309:3306 \
--restart=always \
-v /home/admin/mysql2/mysql-files:/var/lib/mysql-files \
-v /home/admin/mysql2/conf:/etc/mysql \
-v /home/admin/mysql2/log:/var/log/mysql \
-v /home/admin/mysql2/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=data2025 \
-d mysql:8.0.23 \
--server-id=2 \
--lower_case_table_names=1

从库是2:

--server-id=2 \

4、配置主从复制

1)主库
进入主库容器里面,创建一个用户,专门用于复制

sudo docker exec -it mysql-1 /bin/bashmysql -uroot -pdata2025CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;

展示一下主库信息,这个信息很重要,将用于配置从库。

SHOW MASTER STATUS;+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      826 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

2)从库
同样进入容器里面,设置指向主库。注意里面用到的日志文件名称、起始位置,都源自于上面获取的主库信息。

sudo docker exec -it mysql-2 /bin/bashmysql -uroot -pdata2025STOP SLAVE;CHANGE MASTER TO MASTER_HOST='mysql-1', -- 主库容器名称MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=826,MASTER_PORT=3306, -- 默认MySQL端口,因为是在Docker网络内部通信MASTER_SSL=0; -- 不使用SSLSTART SLAVE;SHOW SLAVE STATUS\G;

红框内的属性应为 yes。
在这里插入图片描述

5、测试主从复制效果

1)进入主库创建数据库,表

sudo docker exec -it mysql-1 /bin/bashmysql -uroot -pdata2025create user 'work' identified by '123456';create database testdb;grant all on testdb.* to work@'%';
grant all privileges on *.* to work@'%';use testdb;DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` (`ID` int NOT NULL AUTO_INCREMENT COMMENT '唯一ID',`NAME` varchar(50) DEFAULT NULL COMMENT '名称',`NOTE` varchar(200) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`ID`)
);

2)进入从库,看看是否已经同步过来

sudo docker exec -it mysql-2 /bin/bashmysql -uroot -pdata2025show databases;use testdb;

呀,成功了。

二、mysql的主从复制原理

主从复制的核心是基于 **二进制日志(Binary Log)**的传输和应用。整个过程可以分为以下几个阶段:

(1) 主库记录二进制日志
当主库上发生数据变更操作时(如插入、更新或删除),MySQL 会将这些操作记录到二进制日志文件中。
二进制日志包含每一条事务的详细信息,包括操作类型、执行时间、影响的表和数据等。

(2) 从库连接主库并拉取日志
从库通过一个称为**I/O 线程(IO Thread)**的线程连接到主库。
I/O 线程请求主库的二进制日志,并将其内容复制到从库本地的一个临时文件中,称为中继日志(Relay Log)。

(3) 从库应用日志
从库通过另一个称为**SQL 线程(SQL Thread)**的线程读取中继日志中的内容。
SQL 线程解析日志中的操作并逐一重放到从库的数据库中,从而实现数据同步。

在这里插入图片描述

三、小结

主从复制的目的,是为了读写分离,降低并发压力,提高性能。如何读写分离,下回分解。

http://www.dtcms.com/a/480621.html

相关文章:

  • 建站找哪个公司做的最好的快餐网站
  • 福清市住房和城乡建设局网站WordPress中文相册
  • 今天我们学习MySQL数据库的高级特性
  • 电子商务网站建设期末考试有什么交易网站源码
  • 网站建设规模用什么形容专业的响应式网站建设
  • 如何让自己做的网页有网站湘潭网站建设价格
  • 网站联盟有哪些国内做免费的视频网站
  • 网站被挂了黑链手机网站源码教程
  • 电子商务网站建设的核心是什么郴州网站建设软件定制开发制作
  • 开源网站源码下载公司网站建设升上去
  • 襄县网站建设制作网页的基本代码
  • 网站建设网站徒手整形二维码制作app
  • 公司制作个网站网站建设推广什么意思
  • 阿里云建站和华为云建站淮南网站建设费用
  • 北京机建网站长沙做企业网站的公司
  • 甘肃建设厅网站汽车网站推广策略
  • wordpress 文章内seo推广公司教程
  • 沧州网站推广优化wordpress调用分类文章列表
  • wordpress企业外贸主题深圳网站设计专家乐云seo
  • 苏州外贸公司网站建设流程图网上墓地 wordpress
  • 网站的管理维护招商网站建设地点
  • 网站使用了seo优化工具怎么检测二七区建设局网站
  • 怎样把自己做的网站上传51推广平台
  • 威胁网站检测平台建设中标什么是网站地址
  • 阿里网站导航怎么做的wordpress免登录发布接口
  • 在建设部网站做网站可以把文字做成图片吗
  • 有经验的邯郸网站建设wordpress 网址优化
  • 衡水医院网站建设优秀网视频剪辑
  • 全国商务网站大全两人合伙做网站但不准备开公司
  • 手机网站要备案吗html与wordpress