当前位置:首页 > Ubuntu > 正文

Ubuntu数据库复制配置教程(手把手教你搭建MySQL主从复制环境)

在现代Web应用和企业系统中,Ubuntu数据库复制是保障数据高可用性、负载均衡和灾难恢复的关键技术。本文将详细讲解如何在Ubuntu系统上配置MySQL主从复制,即使你是Linux新手,也能轻松完成整个过程。

什么是MySQL主从复制?

MySQL主从复制是一种将一台MySQL服务器(主服务器)的数据自动复制到一台或多台从服务器的技术。主服务器负责写操作,而从服务器可以处理读请求,从而实现Linux数据库同步和读写分离。

Ubuntu数据库复制配置教程(手把手教你搭建MySQL主从复制环境) Ubuntu数据库复制 MySQL主从复制 Linux数据库同步 Ubuntu MySQL配置 第1张

准备工作

你需要两台运行Ubuntu系统的服务器(建议使用Ubuntu 20.04或更高版本),并确保:

  • 两台服务器都能互相通信(可通过ping测试)
  • 已安装MySQL(推荐8.0版本)
  • 拥有sudo权限

第一步:配置主服务器(Master)

首先登录到你的主服务器,编辑MySQL配置文件:

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

找到并修改以下参数(如果没有则添加):

[mysqld]server-id        = 1log_bin          = /var/log/mysql/mysql-bin.logbinlog_do_db     = your_database_namebind-address     = 0.0.0.0

保存并退出后,重启MySQL服务:

sudo systemctl restart mysql

接下来,创建一个用于复制的专用用户:

mysql -u root -p-- 在MySQL命令行中执行CREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';FLUSH PRIVILEGES;

记录当前二进制日志的位置,稍后从服务器会用到:

SHOW MASTER STATUS;

输出类似如下内容,请记下 FilePosition 的值:

+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 |      154 | your_db_name |                  |+------------------+----------+--------------+------------------+

第二步:配置从服务器(Slave)

登录到从服务器,同样编辑MySQL配置文件:

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

修改以下参数:

[mysqld]server-id        = 2relay-log        = /var/log/mysql/mysql-relay-bin.loglog_bin          = /var/log/mysql/mysql-bin.logbinlog_do_db     = your_database_name

重启MySQL服务:

sudo systemctl restart mysql

现在配置从服务器连接到主服务器:

mysql -u root -p-- 在MySQL命令行中执行(替换为你自己的主服务器IP、用户名、密码、File和Position)CHANGE MASTER TO  MASTER_HOST='主服务器IP地址',  MASTER_USER='repl_user',  MASTER_PASSWORD='StrongPassword123!',  MASTER_LOG_FILE='mysql-bin.000001',  MASTER_LOG_POS=154;START SLAVE;

第三步:验证复制状态

在从服务器上运行以下命令检查复制是否正常:

SHOW SLAVE STATUS\G

关键字段应为:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Seconds_Behind_Master: 0(表示无延迟)

如果出现错误,请检查网络连通性、防火墙设置(开放3306端口)以及用户名密码是否正确。

常见问题与优化建议

- 确保主从服务器时间同步(可使用NTP服务)
- 定期监控复制延迟
- 对于生产环境,建议使用SSL加密复制通道
- 备份策略不可替代复制,仍需定期备份

总结

通过本教程,你已经成功完成了Ubuntu MySQL配置中的主从复制搭建。这项技术不仅能提升系统性能,还能增强数据安全性。掌握Ubuntu数据库复制MySQL主从复制Linux数据库同步Ubuntu MySQL配置这四大核心技能,将为你的运维或开发工作打下坚实基础。

如有疑问,欢迎在评论区留言交流!