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;

记录下FilePosition的值,待后续配置从服务器时使用。

三、配置从服务器

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_RunningSlave_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数据库主从复制有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部