mysql服务器主从备份

内容纲要

要在本地搭建一个数据库,并从多台远程服务器实时同步数据,可以采用以下方案:

方案概述

  1. 在本地搭建数据库: 安装并配置MySQL数据库。
  2. 配置远程数据库: 确保远程MySQL数据库允许本地服务器访问。
  3. 使用MySQL复制(Replication): 配置主从复制,将远程数据库的数据实时同步到本地数据库。

详细步骤

步骤 1:在本地安装和配置MySQL数据库

安装 MySQL:

sudo apt update
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql

配置本地 MySQL:
编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,确保以下设置:

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_do_db=your_database_name  # 如果有多个数据库,可以重复此行,或者省略以同步所有数据库

重启MySQL服务:

sudo systemctl restart mysql

步骤 2:配置远程数据库

在每个远程数据库服务器上进行如下配置:

编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,确保以下设置:

[mysqld]
server-id=unique_server_id  # 确保每个服务器的ID唯一
log_bin=mysql-bin
binlog_do_db=your_database_name  # 如果有多个数据库,可以重复此行,或者省略以同步所有数据库

为复制用户创建权限:

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

获取二进制日志位置:

SHOW MASTER STATUS;

记下输出的FilePosition

步骤 3:配置本地数据库从属(Slave)

在本地服务器上,创建此sh文件,并执行:

# 在本地配置从属
sudo mysql -u root -e "
CHANGE MASTER TO
MASTER_HOST='110.40.61.56',
MASTER_USER='shiran',
MASTER_PASSWORD='zouxinhao',
MASTER_LOG_FILE='mysql-bin.000020',
MASTER_LOG_POS=98794
FOR CHANNEL 'chendu';
START SLAVE FOR CHANNEL 'chendu';
"

对于每个远程数据库,重复上述CHANGE MASTER TO配置,只需改变MASTER_HOST和对应的日志位置。

步骤 4:验证复制状态

在本地MySQL服务器上,执行以下SQL语句以检查复制状态:

SHOW SLAVE STATUS \G;
# 检查单个通道:
SHOW SLAVE STATUS FOR CHANNEL 'master1' \G;

确保Slave_IO_RunningSlave_SQL_Running都显示为Yes,且没有错误。

注意事项

  • 确保本地服务器和远程服务器之间的网络连接畅通。
  • 定期检查复制状态,以确保没有出现延迟或错误。
  • 考虑在复制配置中添加SSL加密,以提高安全性。

通过这种方式,您可以在本地服务器上实时同步多个远程MySQL数据库中的数据。如果有更多具体需求或问题,欢迎进一步讨论。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容