Linux学习(5)-mysql主从备份(热备份)配置及验证实例

本文主要介绍在Linux环境下进行MySQL主从同步的配置与验证。包括MySQL的启动、停止和重启操作,准备主机和从机的数据库配置文件及设置用户密码的SQL语句。详细说明了主机和从机的设置步骤,最后对主从同步进行验证,展示从机自动与主机同步数据的情况。

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

1.mysql启动、停止、重启

service mysqld start

service mysqld stop

service mysqld restart

2.准备几个文件,没有的自己创建到linux目录下

主机数据库配置文件  /etc/my.cnf

[mysqld]
## 常规配置
character-set-server = utf8
collation-server = utf8_general_ci
max_connections = 2000

port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M

# 调整为机器内存的 50%
innodb_buffer_pool_size = 2G

innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT

## 主从配置
log-bin=mysql-bin
binlog_format=mixed

# 需要在一套主从同步的 MySQL 服务器之间唯一
server-id = 1

从机数据库配置文件  /etc/my.cnf

[mysqld]
## 常规配置
character-set-server = utf8
collation-server = utf8_general_ci
max_connections = 2000

port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M

# 调整为机器内存的 50%
innodb_buffer_pool_size = 1G

innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT

## 主从配置
log-bin=mysql-bin
binlog_format=mixed

# 需要在一套主从同步的 MySQL 服务器之间唯一
server-id = 2

主机设置数据库用户及修改密码sql语句  master.sql

ALTER USER 'root'@'localhost' IDENTIFIED BY 'TSF-qcloud1';
GRANT ALL PRIVILEGES ON *.* to root@'localhost' IDENTIFIED BY 'TSF-qcloud1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

CREATE USER 'root'@'%' IDENTIFIED by 'TSF-qcloud1';
GRANT ALL PRIVILEGES ON *.* to root@'%' IDENTIFIED BY 'TSF-qcloud1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

CREATE USER 'replicator'@'%' IDENTIFIED BY 'TSF-qcloud1';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';

SHOW MASTER STATUS;

从机设置数据库用户及修改密码sql语句 slave.sql

ALTER USER 'root'@'localhost' IDENTIFIED BY 'TSF-qcloud1';
GRANT ALL PRIVILEGES ON *.* to root@'localhost' IDENTIFIED BY 'TSF-qcloud1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

CREATE USER 'root'@'%' IDENTIFIED by 'TSF-qcloud1';
GRANT ALL PRIVILEGES ON *.* to root@'%' IDENTIFIED BY 'TSF-qcloud1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3.设置主机

mysql -uroot -p
# 输入密码
mysql> source master.sql;

将这里的  File ,  Position 的值纪录下来,在配置从机时需要用到。如:

 使 MySQL 开机自动运行。

systemctl enable mysqld

查询用户

select host,user from user

4.设置从机

mysql -uroot -p
# 输入密码
mysql> source slave.sql;

 查看用户

select host,user from user

下面开始加入主机,将  <master-host> 替换成主机的内网 IP, <master-log-file> 和  <master-log-pos> 替换为
master 运行  source master.sql 时得到的  File 和  Position 

CHANGE MASTER TO MASTER_HOST='<master-host>', MASTER_USER='replicator',MASTER_PASSWORD='TSF-qcloud1', MASTER_LOG_FILE='<master-log-file>', MASTER_LOG_POS=<master-log-pos>;
START SLAVE;
SHOW SLAVE STATUS\G

观察 Slave_SQL_Running_State 的值,如果是 "Slave has read all relay log; waiting for more updates",即表示正常。

使 MySQL 开机自动运行。

 systemctl enable mysqld 

5.Mysq主从同步验证-主机从从机同步数据(没有支持)

在从机上执行

mysql> CREATE DATABASE tsf_test;


6.Mysq主从同步验证-从机自动与主机同步数据(支持)

在主机上执行

mysql> CREATE DATABASE tsf_test0;

 

### 主从热备份概念 主从热备份是一种高可用性和灾难恢复机制,在MySQL环境中广泛应用。该方案允许一台服务器作为主节点(Master),负责处理所有的写操作;而另一台或多台服务器则作为从节点(Slave),仅用于读取数据并保持与主节点的数据同步[^1]。 在这种模式下,当主节点发生故障时,可以从节点迅速接管服务,从而减少停机时间,提高系统的稳定性和可靠性。此外,通过合理规划网络拓扑结构和硬件资源分配,还可以有效提升整体性能表现[^4]。 ### 配置方法概述 为了实现MySQL主从热备份功能,通常需要经历以下几个关键步骤: #### 1. 准备工作 确保两台机器之间能够正常通信,并安装相同版本的MySQL软件包。同时建议关闭防火墙或开放必要的端口访问权限以便后续配置顺利进行[^2]。 #### 2. 修改my.cnf文件 针对每台主机分别编辑`/etc/my.cnf`配置文件,设置唯一的server-id参数值区分不同实例身份标识。对于master而言还需指定binlog日志记录格式为ROW级别以支持增量更新传输需求[^3]。 ```bash # Master server configuration example [mysqld] server-id=1 log-bin=mysql-bin binlog-format=row ``` ```bash # Slave server configuration example [mysqld] server-id=2 relay-log=mysql-relay-bin read-only=ON ``` #### 3. 初始化数据同步 首次部署完成后需执行全量导出导入流程,即将master上的现有表空间完整迁移到slave侧完成初次加载任务。此过程中可借助工具如mysqldump简化操作难度。 ```sql -- On the master server, lock tables and dump data FLUSH TABLES WITH READ LOCK; SYSTEM mysqldump -u root -p --all-databases > /path/to/dump.sql UNLOCK TABLES; -- Transfer dump file to slave server via SCP or similar method scp /path/to/dump.sql user@slave:/path/ -- Import dumped SQL on slave side mysql -u root -p < /path/to/dump.sql ``` #### 4. 启动复制进程 最后一步是在slave上启动I/O线程连接到远程master获取最新的二进制事件流,并激活SQL线程应用变更至本地存储引擎层面上去。 ```sql CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=<position>; START SLAVE; ``` 以上就是关于MySQL主从热备份的基本介绍及其具体实施指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值