搭建Ubuntu上的MySQL主从复制
在数据库领域,主从复制是一种常见的架构模式,用于提高数据库的性能和可用性。在MySQL中,可以通过配置主从复制来实现数据同步,从而实现读写分离和容灾备份。
准备工作
在开始配置MySQL主从复制之前,我们需要确保以下几点:
- 两台Ubuntu服务器,一台作为主服务器,一台作为从服务器
- 在两台服务器上安装MySQL数据库
- 确保主从服务器之间可以互相通信
配置主服务器
首先,我们需要在主服务器上进行一些配置。假设我们已经安装了MySQL,现在我们需要在/etc/mysql/mysql.conf.d/mysqld.cnf
文件中添加以下配置:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydatabase
然后重启MySQL服务:
sudo systemctl restart mysql
配置从服务器
接下来,我们需要在从服务器上进行配置。假设我们已经安装了MySQL,现在我们需要在/etc/mysql/mysql.conf.d/mysqld.cnf
文件中添加以下配置:
server-id = 2
然后重启MySQL服务:
sudo systemctl restart mysql
创建复制用户
在主服务器上,我们需要创建一个专门用于复制的用户。登录MySQL,执行以下SQL语句:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
启动主从复制
现在我们可以开始配置主从复制了。在从服务器上,登录MySQL,执行以下SQL语句:
CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
START SLAVE;
检查主从复制状态
在主服务器上,执行以下SQL语句可以查看主从复制状态:
SHOW MASTER STATUS;
在从服务器上,执行以下SQL语句可以查看主从复制状态:
SHOW SLAVE STATUS\G
序列图
下面是配置主从复制的过程的序列图:
sequenceDiagram
participant 主服务器
participant 从服务器
主服务器->>主服务器: 配置server-id, log_bin
主服务器->>主服务器: 重启MySQL服务
从服务器->>从服务器: 配置server-id
从服务器->>从服务器: 重启MySQL服务
主服务器->>主服务器: 创建复制用户
从服务器->>从服务器: 启动主从复制
总结
通过上述步骤,我们成功地在Ubuntu服务器上配置了MySQL主从复制。这种架构模式可以提高数据库的性能和可用性,是实现读写分离和容灾备份的重要手段。希望本文对您有所帮助!