linux mysql 主从备份

本文介绍如何在两台Linux机器上配置MySQL主从复制,包括主服务器(my_data数据库)和从服务器的配置步骤,及如何进行历史数据同步。

一、在两台Linux机器上安装MySQL

二、Master主服务器配置(192.168.1.3)

1.编辑my.cnf(命令查找文件位置:find / -name my.cnf)

vi /etc/mysql/my.cnf

在[mysqld]中添加:

server-id = 1

log_bin = master-bin

log_bin_index = master-bin.index

binlog_do_db = my_data

binlog_ignore_db = mysql

备注:server-id 服务器唯一标识,log_bin 启动MySQL二进制日志,binlog_do_db 指定记录二进制日志的数据库,binlog_ignore_db 指定不记录二进制日志的数据库。

2.登录主服务器MySQL创建从服务器用到的账户和权限:

grant replication slave on *.* to 'masterbackup' @'192.168.1.%' identified by 'masterbackup';

(192.168.1.%通配符,表示0-255的IP都可访问主服务器,正式环境请配置指定从服务器IP)

3.重启MySQL,命令:

/etc/init.d/mysql restart

4.登录MySQL状态下,查看主服务器状态:

show master status;

三、Slave从服务器配置(192.168.1.5)

1.编辑my.cnf(命令查找文件位置:find / -name my.cnf)

vi /etc/mysql/my.cnf

在[mysqld]中添加:

server-id = 2

relay-log = slave-relay-bin

relay-log-index = slave-relay-bin.index

2.重启Slave从服务器MySQL,命令:

/etc/init.d/mysql restart

3.登录Slave从服务器,连接Master主服务器:

change master to master_host='192.168.1.103',master_port=3306,master_user='masterbackup',master_password='masterbackup',master_log_file='master-bin.000001',master_log_pos=03;

备注:master_host对应主服务器的IP地址,master_port对应主服务器的端口,master_log_file对应show master status显示的File列:master-bin.000001,master_log_pos对应Position列:2403,否则有可能出现同步失败。

4.登录MySQL状态下,启动Slave数据同步。

start slave;

5.登录MySQL状态下,查看Slave信息:

show slave status\G;

备注:Slave_IO_Running和Slave_SQL_Running都为yes才表示同步成功。

6.登录MySQL状态下,停止同步命令:



stop slave;

四、历史数据同步

数据同步的方法很多:
(1)mysqldump -u root -p111 dbname > /home/dbname.sql 备份数据库
    mysql>source /home/dbname.sql
(2)通过navicat同步数据进行同步
### 配置 MySQL 主从复制备份 #### 1. 环境准备 在配置 MySQL 主从复制之前,需要确保两台服务器已经正确设置了主机名映射。可以通过编辑 `/etc/hosts` 文件来完成域名解析[^2]。 ```bash vim /etc/hosts ``` 添加如下内容: ``` 192.168.126.141 mysql-master 192.168.126.139 mysql-slave ``` 这一步是为了让主节点 `mysql-master` 和从节点 `mysql-slave` 能够通过名称互相访问。 --- #### 2. 安装 MySQL 在开始配置前,需确认两台服务器均已安装相同版本的 MySQL 数据库。如果尚未安装,则按照以下步骤操作。 ##### 2.1 检查并清理旧版 MySQL 运行以下命令检查是否存在已安装的 MySQL 版本,并清除残留文件[^3]。 ```bash [root@localhost ~]# rpm -qa | grep mysql ``` 若有输出结果,表示存在旧版 MySQL,可以使用以下命令卸载: ```bash [root@localhost ~]# yum remove $(rpm -qa | grep mysql) ``` 接着删除可能存在的目录和文件: ```bash rm -rf /usr/lib64/mysql /usr/share/mysql find / -name mysql | xargs rm -rf ``` --- #### 3. 配置 Master 节点 (主节点) ##### 3.1 修改 my.cnf 配置文件 编辑 MySQL 的配置文件 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`,增加或修改以下参数: ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=testdb # 只同步 testdb 这个数据库的数据 expire_logs_days=7 # 设置二进制日志保留时间 innodb_flush_log_at_trx_commit=1 sync_binlog=1 # 提升数据一致性 ``` 保存后重启 MySQL 服务使更改生效: ```bash systemctl restart mysqld ``` ##### 3.2 创建用于同步的账号 登录到 MySQL 并创建一个专门用于主从同步的用户账户: ```sql CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` 记录下该用户的用户名 (`repl`) 和密码 (`password`),稍后会在 Slave 上使用。 ##### 3.3 获取当前 Binlog 日志位置 执行以下 SQL 查询获取当前的 binlog 文件名及其偏移量: ```sql SHOW MASTER STATUS; ``` 输出类似于: | File | Position | Binlog_Do_DB | |--------------|----------|--------------| | mysql-bin.001| 123 | testdb | 记住这些信息,因为它们将在后续配置中被用到。 --- #### 4. 配置 Slave 节点 (从节点) ##### 4.1 修改 my.cnf 配置文件 同样编辑 `/etc/my.cnf` 文件,在 `[mysqld]` 下新增以下内容: ```ini [mysqld] server-id=2 relay-log=mysql-relay-bin read-only=1 # 将此实例设为只读模式 replicate-do-db=testdb # 同步指定数据库 ``` 完成后重启 MySQL 服务: ```bash systemctl restart mysqld ``` ##### 4.2 配置主从关系 连接至 Slave 节点上的 MySQL 实例,执行以下命令建立主从关联: ```sql CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.001', -- 替换为主节点查询得到的日志文件名 MASTER_LOG_POS=123; -- 替换为主节点查询得到的位置编号 START SLAVE; ``` 验证主从状态是否正常启动: ```sql SHOW SLAVE STATUS\G ``` 重点关注以下几个字段: - `Slave_IO_Running`: 应显示为 Yes; - `Slave_SQL_Running`: 应显示为 Yes。 如果均为 Yes,则说明主从复制成功开启。 --- #### 5. 测试主从复制功能 在 Master 节点上向目标数据库写入一些测试数据,观察其能否自动同步到 Slave 节点。例如: ```sql USE testdb; CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL ); INSERT INTO users(username) VALUES('test_user'); ``` 随后查看 Slave 节点中的对应表结构及数据是否一致。 --- ### 总结 MySQL 主从复制的核心在于将 Master 执行的操作以二进制日志的形式传递给 Slave,并由后者重新应用相同的变更过程[^4]。上述方法涵盖了完整的部署流程,包括环境初始化、配置调整以及最终的状态检验环节。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值