MYSQL5.5 主从同步 window

本文详细介绍MySQL主从复制配置步骤,包括主服务器上数据锁定、导出、配置及状态查看,以及从服务器的数据导入、配置等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,主服务器上的操作
1.--将主机阻断写操作并导出数据
执行如下命令进去mysql命令窗口:
mysql -uroot -p密码;
--加锁,以免导数据时数据库数据发生变化。
mysql>FLUSH TABLES WITH READ LOCK;
--打开一个新的命令窗口导出主机数据库
mysqldump -u root -p密码 --opt -R jq > jq.sql
--在mysql命令窗口为主机解锁
mysql> UNLOCK TABLES;
 
 
2.配置主服务器,找到mysql的配置文件 my.ini
往文件最末尾添加如下内容:
server-id=1  #这个要唯一,从服务器待会填不一样的数字
log-bin=mysql-bin #开启二进制日志功能
binlog-do-db = jq # 要复制同步的数据库
重启mysql服务以便让配置生效。
net stop mysql;
net start mysql;
 
3.启动服务后,执行如下命令进去mysql命令窗口:
mysql -uroot -p密码;
在命令窗口查看主服务器的状态。并记录以下信息:file:mysql-bin.000002  Position:1529881(从服务器需要用到)
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1529881 | jq |   |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
 
二.配置并导入数据到从服务器。
 
1.执行如下命令进去mysql命令窗口:
mysql -uroot -p密码;
删除已经有的库并创建新的数据库
drop database jq;
create database jq;
将数据导入数据库中,也可以使用工具实现导入。
mysql -u root -p密码 jq< 存放的路径/jq.sql
 
 
2.配置从服务器的my.ini文件。
往文件最末尾添加如下内容:
server-id=2  #这个要唯一,主服务器填不一样的数字
log-bin=mysql-bin #开启二进制日志功能
binlog-do-db = jq # 要复制同步的数据库
重启mysql服务以便让配置生效。
net stop mysql;
net start mysql;
 
3.--从机操作(在mysql命令窗口执行)
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='主机IP',
MASTER_USER='主机root用户',
MASTER_PASSWORD='主机root密码',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G
如果有以下显示就表示配置成功。
 
 Slave_IO_Running: Yes    
 Slave_SQL_Running: Yes 
 
备注:程序去写数据时,配置的链接URL数据库名一定要和数据库一致(大小写一致),
配置的my.ini要同步的数据库也是如此,都保持大小写一致。要不然产生不了binlog。

 

### MySQL 不同版本的功能变更与日志说明 #### 功能变更概述 MySQL 各个版本之间存在显著的功能改进和技术优化。早期版本主要关注基础功能的实现和完善,而后期版本则更注重性能优化、安全性和兼容性增强。 - **MySQL 5.0** 引入了存储过程和视图的支持,这使得复杂查询逻辑可以通过编程方式封装并重用[^1]。 - **MySQL 5.1** 增加了分区表支持,允许开发者通过水平分割数据来提高大规模数据集的操作效率。此外还引入了事件调度器(Event Scheduler),用于定时任务自动化处理[^2]。 - **MySQL 5.5** 开始默认使用 InnoDB 存储引擎替代 MyISAM ,因为前者提供了事务管理和外键约束等功能,在高并发场景下表现更好[^3]。 - **MySQL 5.6** 提升了复制子系统的性能,并增加了 GTID (Global Transaction Identifiers) 来简化主从同步配置管理;同时增强了在线 DDL 能力,减少维护期间停机时间的影响[^4]。 - **MySQL 8.0** 是一次重大升级,带来了窗口函数(Window Functions)、JSON字段索引等新特性,并彻底移除了旧版不推荐使用的MyISAM作为默认存储引擎选项之一[^5]。 #### 日志机制的变化分析 随着版本迭代,MySQL 对其内部的日志体系也进行了多次调整: - **Binlog(Binary Log)** - Binlog 记录的是所有更改数据库结构或者内容的数据语句(statement-based replication) 或者实际发生的具体行变化(row-based replication)[^1] 。自 MySQL 5.7 版本起,默认采用混合模式(mixed format),即根据具体情况自动选择 statement 还是 row 形式的 binlog[ ^6 ]. - **Redo Log 和 Undo Log** - Redo log 主要服务于崩溃恢复(crash recovery), 它会在每次提交前被持久化到磁盘上, 遵循WAL(Write Ahead Logging)原则 . 在较新的版本里, 如 MySQL 8.0 , 支持更大的 redo buffer size 及多线程刷盘策略以适应更高负载需求下的高效写入操作 . - Undo logs 则保存回滚段信息以便于未完成事物能够正确撤销 . 新增 undo tablespace 设计让这些临时元数据独立存放从而减轻系统表空间压力 . 综上所述可以看出随着时间推移mysql不断演进完善自身架构设计满足日益增长的应用开发要求. ```sql -- 查看当前服务器开启哪些类型的日志 SHOW VARIABLES LIKE 'log%'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值