下面我将为您详细讲解在Linux系统下MySQL配置主从分离的步骤:
1. 确保主从服务器之间网络畅通
确认主从服务器之间能够互相访问,可以使用ping命令验证。
2. 安装MySQL
在主从服务器上安装MySQL,可以使用以下命令:
sudo apt-get update
sudo apt-get install mysql-server
3. 配置主服务器
3.1 修改主服务器配置文件
打开主服务器的MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
,设置以下参数:
log_bin = /var/log/mysql/mysql-bin.log
server-id = 1
其中log_bin
表示二进制日志的存储路径,server-id
表示服务器的唯一标识。
3.2 创建用于复制的用户账户
在主服务器上创建用于复制的用户账户,可以使用以下命令:
CREATE USER 'replication'@'%' IDENTIFIED BY 'replication_passwd';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
4. 配置从服务器
4.1 修改从服务器配置文件
打开从服务器的MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
,设置以下参数:
server-id = 2
4.2 从主服务器获取备份数据
在从服务器上使用mysqldump
命令从主服务器获取数据备份:
mysqldump -uroot -p --master-data=1 --single-transaction --flush-logs --hex-blob --databases db_name > db_name.sql
其中--master-data=1
表示在备份数据的同时记录主服务器的二进制日志文件和偏移量;--single-transaction
表示使用事务模式备份数据;--flush-[表类型]
表示在备份数据时刷新[表类型]的缓存;--hex-blob
表示以十六进制格式备份BLOB字段。
4.3 恢复备份数据
将从主服务器获取的数据备份文件复制到从服务器上,然后使用以下命令导入数据到从服务器:
mysql -uroot -p < db_name.sql
5. 启动主从复制
5.1 在主服务器上查看二进制日志文件和偏移量
使用以下命令查看当前主服务器的二进制日志文件和偏移量:
mysql> SHOW MASTER STATUS;
记录下File
和Position
的值,用于在从服务器上启动主从复制。
5.2 在从服务器上配置连接主服务器
使用以下命令配置从服务器连接主服务器:
mysql> CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication', MASTER_PASSWORD='replication_passwd', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos;
其中master_ip
表示主服务器的IP地址,master_log_file
和master_log_pos
分别表示上一步中记录的主服务器的二进制日志文件和偏移量。
5.3 启动从服务器复制进程
使用以下命令启动从服务器复制进程:
mysql> START SLAVE;
使用以下命令查看复制状态:
mysql> SHOW SLAVE STATUS \G;
如果输出中的Slave_IO_Running
和Slave_SQL_Running
都为Yes
,表示主从复制已经启动成功。
示例
假设主服务器的IP地址为192.168.1.100
,从服务器的IP地址为192.168.1.101
。
示例1:在主服务器上创建一个名为testdb
的数据库,并在该数据库中创建一个名为testtable
的表
1.1 连接MySQL服务器:
mysql -uroot -p
1.2 创建数据库:
CREATE DATABASE testdb;
1.3 创建表:
USE testdb;
CREATE TABLE testtable(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(20), PRIMARY KEY(id));
示例2:在从服务器上检查是否复制成功
2.1 在主服务器上执行以下命令:
INSERT INTO testdb.testtable(name) VALUES ('test');
2.2 在从服务器上检查是否复制成功:
SELECT * FROM testdb.testtable;
如果查询结果中包含刚刚插入的数据,说明主从复制已经成功。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux系统下MySQL配置主从分离的步骤 - Python技术站