冯强军

我的博客

宝塔面板mysql数据库主从同步配置

步骤一:配置主服务器 

1.修改MySQL配置文件

登录主服务器的宝塔面板,进入 软件商店 -> 找到你的MySQL实例 -> 点击 设置 -> 配置修改。

在 [mysqld] 段落中,找到并修改以下参数:

[mysqld]
server-id = 1  # 给主服务器一个唯一ID,通常设为1
log-bin = mysql-bin  # 开启二进制日志,这是复制的基础
binlog-do-db = xxx  # 指定要同步的数据库(多个数据库可重复多行)
#binlog-ignore-db = mysql  # 可选,忽略不同步的系统库

保存修改后,重启MySQL服务使配置生效。


2.创建主从同步专用用户

仍在主服务器上,通过宝塔面板的 数据库 菜单,点击 root密码 查看或设置好root密码。然后通过SSH终端或宝塔的 软件商店 -> MySQL -> 管理 -> 命令行 登录MySQL:

mysql -u root -p
# 输入MySQL的root密码


在MySQL命令行中,执行以下命令创建一个专门用于复制权限的用户(请使用强密码替换 'your_strong_password'):


CREATE USER 'repl_user'@'120.24.251.xxx' IDENTIFIED BY 'your_strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'120.24.251.xxx';
FLUSH PRIVILEGES;

3.查看主服务器状态并记录关键信息

1.继续在MySQL命令行中执行:

SHOW MASTER STATUS;

记录下返回结果中的 File (例如 mysql-bin.000001) 和 Position (例如 617) 的值。从服务器配置时需要用到这两个值。记下后可以退出MySQL命令行 (exit)。


步骤二:配置从服务器 

1.新建数据库并导入数据(如果需要)

登录从服务器的宝塔面板,进入 数据库,点击 添加数据库。

数据库名:xxx

用户名:xxx(或其他你希望使用的用户名,不一定必须和主库用户名相同)

密码:设置一个强密码

访问权限:选择本地服务器或根据后续程序连接需要设置

点击 创建。

如果主库xxx已有数据,请现在从库的phpMyAdmin中导入你之前从主库导出的数据备份。


2.修改MySQL配置文件

在从服务器宝塔面板上,如同配置主服务器一样,找到MySQL的配置文件进行修改:

[mysqld]
server-id = 2  # 从服务器ID,必须与主服务器不同
relay-log = relay-log-bin  # 开启中继日志
read_only = 1  # 设置从库为只读(可选,增强安全性)
replicate-do-db = xxx  # 指定要复制的数据库

保存修改后,重启MySQL服务使配置生效。


3.配置并启动从库复制链路

通过SSH或宝塔终端登录从服务器的MySQL命令行 (mysql -u root -p)。然后执行以下命令,将括号内容替换为你在主服务器上获取的信息和创建的用户密码:

CHANGE MASTER TO
MASTER_HOST='119.23.55.xxx',      -- 主服务器IP
MASTER_USER='repl_user',          -- 主库创建的复制账号
MASTER_PASSWORD='your_strong_password', -- 复制账号的密码
MASTER_PORT=3306,                 -- MySQL端口,默认3306
MASTER_LOG_FILE='mysql-bin.000001', -- 主库SHOW MASTER STATUS显示的File
MASTER_LOG_POS=617;               -- 主库SHOW MASTER STATUS显示的Position


完成后,启动从库复制进程:

START SLAVE;


步骤三:检查同步状态

在从服务器的MySQL命令行中,执行以下命令查看从库状态:


SHOW SLAVE STATUS \G


关键查看这两行:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes


如果这两个参数的值都是 Yes,恭喜你,主从同步已经成功建立。


发表评论:

您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    Powered By Z-BlogPHP 1.7.4

    Copyright fengqiangjun.com Rights Reserved.