MySQL数据库主从搭建(详细图文)
MySQL主从复制是一种常用的数据库架构,可以用来实现数据备份、负载均衡和故障转移等功能。这篇文章将详细介绍如何搭建MySQL主从复制,并提供相应的代码示例。
一、环境准备
1. 安装MySQL
首先需要在两台服务器上安装MySQL,可以通过以下命令在Ubuntu上安装:
sudo apt update
sudo apt install mysql-server
在CentOS上可以使用:
sudo yum install mysql-server
安装完成后,启动MySQL服务:
sudo service mysql start
2. 确认MySQL版本
在两台服务器上查看MySQL版本,确保版本一致:
mysql --version
二、配置主服务器
1. 修改配置文件
在主服务器上,编辑MySQL配置文件my.cnf
(在Ubuntu中通常位于/etc/mysql/my.cnf
,在CentOS中通常位于/etc/my.cnf
):
sudo vi /etc/mysql/my.cnf
在文件中添加以下内容:
[mysqld]
server-id=1
log_bin=mysql-bin
server-id
用于标识服务器的唯一ID,主服务器通常设置为1。log_bin
指定启用二进制日志。
2. 创建复制账号
登录主服务器的MySQL,创建一个用于复制的用户:
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;
3. 获取主服务器状态
执行以下命令,获取主服务器的状态信息:
SHOW MASTER STATUS;
记录下File
和Position
的值,待后续配置从服务器时使用。
三、配置从服务器
1. 修改从服务器配置文件
在从服务器上,同样编辑MySQL配置文件:
sudo vi /etc/mysql/my.cnf
添加以下内容:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
server-id
设置为2,表示这是第二台服务器。
2. 重启MySQL服务
在从服务器上重启MySQL服务以使配置生效:
sudo service mysql restart
3. 配置从服务器复制主服务器
登录从服务器的MySQL,执行以下命令:
CHANGE MASTER TO
MASTER_HOST='主服务器IP', -- 替换为主服务器的IP地址
MASTER_USER='replica_user',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001', -- 替换为主服务器SHOW MASTER STATUS获取的File
MASTER_LOG_POS=12345; -- 替换为主服务器SHOW MASTER STATUS获取的Position
START SLAVE;
四、验证主从复制配置
在从服务器上执行以下命令,确认复制是否成功:
SHOW SLAVE STATUS\G
检查Slave_IO_Running
和Slave_SQL_Running
的状态,如果都为Yes
,则表示主从复制配置成功。
五、测试主从复制
在主数据库中插入测试数据:
USE test;
CREATE TABLE test_table (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('Test Data');
在从数据库中查询测试数据:
USE test;
SELECT * FROM test_table;
如果从数据库中能看到主数据库的插入内容,说明主从复制功能正常。
六、总结
通过以上步骤,我们成功搭建了MySQL主从复制环境。主从复制不仅可以实现数据备份,还可以提高数据的可用性和性能。在实际应用中可以根据业务需求灵活调整主从复制的配置。希望这篇文章对你搭建MySQL数据库主从复制有所帮助!