在主从同步的架构中,一台MySQL服务器(称为主服务器)实时将其数据更改发送到备份的MySQL服务器(称为从服务器)。主服务器上所做的任何数据更改都将自动传送到从服务器。从服务器可用于读取和备份操作,并且可以作为故障恢复策略的一个层面。
为了在Linux上实现MySQL主从同步,大家需要为主服务器和从服务器安装MySQL,并在它们之间建立一个适当的网络连接。如果已经有一组正在运行的MySQL服务器,也可以将其中一台用作主服务器,另一台用作从服务器。此外,必须应用适当的数据库配置、网络配置,并使用复制用户和密码授权主服务器与从服务器之间的通信。
以下是在Linux上设置MySQL主从同步的基本步骤:
1. 首先,在主服务器上创建一个MySQL复制用户,并授予其复制权限,这是主服务器与从服务器之间的通信所需的必要步骤。例如, CREATE USER ‘repuser’@’%’ IDENTIFIED BY ‘password’; GRANT REPLICATION SLAVE ON *.* TO ‘repuser’@’%’; 2. 然后,在主服务器中启用二进制日志,以保存对数据库的所有更改。例如, sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf log-bin=replica-01 3. 接着,在主服务器上执行FLUSH TABLES WITH READ LOCK命令,以停止所有正在进行的写入操作。例如, mysql>FLUSH TABLES WITH READ LOCK; 4. 在主服务器上获取二进制日志文件的名称以及当前的日志位置,并将此信息用于配置从服务器。例如, mysql>SHOW MASTER STATUS; +————-+———-+————————-+——————+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +————-+———-+————————-+——————+ | mysql-bin.00001 | 107 | test0,test1 | | +————-+———-+————————-+——————+ 5. 在从服务器上,使其能够连接到主服务器,以获取主服务器上保存的所有二进制日志,例如, CHANGE MASTER TO MASTER_HOST=’192.168.1.100′,MASTER_USER=’repuser’, MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.00001′, MASTER_LOG_POS=107; 6. 然后,在从服务器上启动从服务器的复制进程。例如, mysql>START SLAVE; 7. 最后,在主服务器上执行UNLOCK TABLES命令以解除锁定并使从服务器开始接收来自主服务器的更改。例如, mysql>UNLOCK TABLES;
通过这样简单的步骤就可以在Linux上配置MySQL主从同步,在一台MySQL服务器发生故障时,可以快速且无缝地将流量转移至另一台(即从服务器)。