在现代的互联网应用中,数据库是不可或缺的一部分。而数据库主从复制是一种常见的数据库架构,它可以实现数据的备份、读写分离等功能。本文将介绍如何在Ubuntu系统上搭建一个MySQL主从数据库,并提供相应的代码示例。

什么是MySQL主从数据库

MySQL主从数据库是一种数据库复制的架构,其中有一个主数据库(Master)和一个或多个从数据库(Slave)。主数据库负责处理写操作和更新操作,而从数据库则负责处理读操作,可以提高数据库的性能和可靠性。

搭建MySQL主从数据库步骤

  1. 安装MySQL

首先需要在Ubuntu系统上安装MySQL数据库。

sudo apt update
sudo apt install mysql-server
  1. 配置主数据库

编辑MySQL配置文件,开启binlog和设置server_id。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在文件中添加以下配置:

[mysqld]
server_id=1
log_bin=mysql-bin

重启MySQL服务。

sudo systemctl restart mysql
  1. 创建复制用户

登录MySQL,创建一个用于复制的用户,并授权。

mysql -u root -p

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
  1. 备份主数据库

在主数据库上创建一个数据库,并插入一些数据。

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));

INSERT INTO users VALUES (1, 'Alice');
INSERT INTO users VALUES (2, 'Bob');
  1. 配置从数据库

在从数据库上也需要编辑MySQL配置文件,设置server_id。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

添加以下配置:

[mysqld]
server_id=2

重启MySQL服务。

sudo systemctl restart mysql
  1. 启动复制

在从数据库上执行复制命令。

mysql -u root -p

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
START SLAVE;

数据库结构关系图

erDiagram
    users {
        int id
        varchar name
    }

数据库查询示例

  1. 在主数据库中查询数据:
SELECT * FROM testdb.users;
  1. 在从数据库中查询数据:
SELECT * FROM testdb.users;

总结

通过以上步骤,我们成功搭建了一个MySQL主从数据库,并实现了数据的同步。主从数据库架构可以提高数据库的性能和可靠性,是现代互联网应用中常见的数据库部署方式之一。希望本文对您有所帮助,谢谢阅读!