对于MySQL数据库来说,主备(Master-Slave)复制是一种常见的高可用性方案,可以保证数据的备份和容错。下面是一份简单的教程,介绍如何通过MySQL的主备(Master-Slave)复制实现数据库的高可用性。
首先,我们需要在主数据库上进行以下操作:
CREATE USER 'slave_user'@'%' IDENTIFIED BY 'password'; # 创建用于同步的用户
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%'; # 让同步用户拥有主从同步的权限
FLUSH TABLES WITH READ LOCK; # 锁定当前所有表
SHOW MASTER STATUS; # 查看主数据库 binlog 的文件名及位置用于配置从数据库
执行以上命令后,可以得到类似以下的输出信息:
+---------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 120 | | | |
+---------------------+----------+--------------+------------------+-------------------+
记下这个信息,我们在配置从数据库时需要用到。
然后我们需要在从数据库上进行以下操作:
CHANGE MASTER TO MASTER_HOST = 'master_ip', MASTER_USER = 'slave_user', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 120; # 配置主备关系
START SLAVE; # 启动从数据库同步
通过以上命令,从数据库就能够开始从主数据库上同步数据,从而保证数据备份和容错。在运行过程中,如果出现异常,可以通过以下命令进行修复:
STOP SLAVE; # 停止从数据库同步
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=123; # 修改主库日志文件名和位置
START SLAVE; # 重新启动从数据库同步
这样,我们就完成了MySQL数据库的主备(Master-Slave)复制过程,保证了数据的备份和容错。