在现代的互联网应用中,数据库是不可或缺的一部分。而数据库主从复制是一种常见的数据库架构,它可以实现数据的备份、读写分离等功能。本文将介绍如何在Ubuntu系统上搭建一个MySQL主从数据库,并提供相应的代码示例。
什么是MySQL主从数据库
MySQL主从数据库是一种数据库复制的架构,其中有一个主数据库(Master)和一个或多个从数据库(Slave)。主数据库负责处理写操作和更新操作,而从数据库则负责处理读操作,可以提高数据库的性能和可靠性。
搭建MySQL主从数据库步骤
- 安装MySQL
首先需要在Ubuntu系统上安装MySQL数据库。
sudo apt update
sudo apt install mysql-server
- 配置主数据库
编辑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
- 创建复制用户
登录MySQL,创建一个用于复制的用户,并授权。
mysql -u root -p
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
- 备份主数据库
在主数据库上创建一个数据库,并插入一些数据。
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');
- 配置从数据库
在从数据库上也需要编辑MySQL配置文件,设置server_id。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
添加以下配置:
[mysqld]
server_id=2
重启MySQL服务。
sudo systemctl restart mysql
- 启动复制
在从数据库上执行复制命令。
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
}
数据库查询示例
- 在主数据库中查询数据:
SELECT * FROM testdb.users;
- 在从数据库中查询数据:
SELECT * FROM testdb.users;
总结
通过以上步骤,我们成功搭建了一个MySQL主从数据库,并实现了数据的同步。主从数据库架构可以提高数据库的性能和可靠性,是现代互联网应用中常见的数据库部署方式之一。希望本文对您有所帮助,谢谢阅读!