在现代数据库应用中,读写分离和数据备份是保证系统高可用性和数据安全性的重要手段,MySQL主从复制(也称为A/B复制)是一种常见的解决方案,通过将数据从主服务器(Master)复制到从服务器(Slave),实现负载均衡和数据冗余,本文将详细介绍如何进行MySQL的主从配置。
MySQL的主从复制基于二进制日志(Binary Log,简称Binlog),主库将所有对数据库的修改记录到Binlog中,从库通过读取这些日志并将它们在自己的数据库上重新执行,从而实现数据同步。
1、主库(Master)负责处理写操作,并将变更记录到二进制日志中。
2、从库(Slave)通过I/O线程读取主库的Binlog,并将其写入自己的中继日志(Relay Log),随后,SQL线程读取中继日志并在从库上重放这些日志,以实现数据同步。
在进行主从配置之前,需要确保以下几点:
1、操作系统版本和位数一致:主库和从库应使用相同的操作系统版本和位数。
2、MySQL版本一致:主库和从库的MySQL版本应保持一致。
3、数据初始状态一致:进行主从复制前,确保主库和从库的数据是一致的。
4、网络互通:主库和从库之间必须能够通过网络相互通信。
5、唯一标识:主库和从库的server_id必须不同,且在局域网内唯一。
1. 安装MySQL
在主库和从库上分别安装MySQL,可以参考以下命令进行安装:
下载MySQL wget https://dev.mysql.com/get/mysql8.0-el7-x86_64.tar.gz 解压安装包 tar -zxvf mysql8.0-el7-x86_64.tar.gz 移动到目标目录 mv mysql-8.0.33-el7-x86_64 /usr/local/mysql 创建用户和用户组 groupadd mysql && useradd -r -g mysql mysql 赋予权限 chown -R mysql:mysql /usr/local/mysql chmod -R 755 /usr/local/mysql
然后初始化数据目录并启动MySQL服务:
初始化数据目录 cd /usr/local/mysql ./bin/mysqld --initialize --user=mysql 启动MySQL服务 ./bin/mysqld_safe --user=mysql &
2. 配置主库
在主库上进行如下配置:
1、编辑配置文件my.cnf
:
[mysqld] server-id = 1 # 主库ID log-bin = mysql-bin # 开启Binlog binlog-do-db = testDB # 指定需要复制的数据库
2、重启MySQL服务:
systemctl restart mysqld
3、创建复制用户并赋予权限:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
4、锁定表并备份数据:
FLUSH TABLES WITH READ LOCK; mysqldump -u root -p --all-databases --master-data > backup.sql
5、解锁表:
UNLOCK TABLES;
记录下show master status\G
命令的输出,特别是File
和Position
的值。
3. 配置从库
在从库上进行如下配置:
1、编辑配置文件my.cnf
:
[mysqld] server-id = 2 # 从库ID,必须与主库不同 relay-log = relay-bin # 开启中继日志
2、重启MySQL服务:
systemctl restart mysqld
3、导入备份数据:
mysql -u root -p < backup.sql
4、配置从库连接主库:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl', MASTER_PASSWORD='password123', MASTER_LOG_FILE='mysql-bin.xxxxxx', # 主库Binlog文件名 MASTER_LOG_POS=xxxx; # 主库Binlog位置
5、启动从库同步:
START SLAVE;
6、检查从库状态:
SHOW SLAVE STATUS\G;
如果Slave_IO_Running
和Slave_SQL_Running
都显示Yes
,则表示主从同步已经成功。
在主库上创建一个测试表并插入数据:
USE testDB; CREATE TABLE test ( id INT, name VARCHAR(20) ); INSERT INTO test(id, name) VALUES(1, 'Test');
在从库上查看是否同步了该表和数据:
USE testDB; SHOW TABLES; SELECT * FROM test;
如果从库上能看到相应的表和数据,说明主从复制配置成功。
通过以上步骤,我们成功实现了MySQL的主从复制配置,这一过程涉及安装MySQL、配置主库和从库、创建复制用户、导出和导入数据以及启动同步等步骤,在实际生产环境中,还需要根据具体需求进行优化和调整,例如设置半同步复制、监控复制状态以及处理复制错误等。
随着互联网的普及和信息技术的飞速发展台湾vps云服务器邮件,电子邮件已经成为企业和个人日常沟通的重要工具。然而,传统的邮件服务在安全性、稳定性和可扩展性方面存在一定的局限性。为台湾vps云服务器邮件了满足用户对高效、安全、稳定的邮件服务的需求,台湾VPS云服务器邮件服务应运而生。本文将对台湾VPS云服务器邮件服务进行详细介绍,分析其优势和应用案例,并为用户提供如何选择合适的台湾VPS云服务器邮件服务的参考建议。
工作时间:8:00-18:00
电子邮件
1968656499@qq.com
扫码二维码
获取最新动态