把本博客的mysql库与NAS的mariadb配置为主从,mysql为主,mariadb为从

主 配置

/*
MYSQL版本:5.7.34
系统版本:Debian11
从LNMP安装
*/
  1. 检查my.cnf
    -- /etc/my.cnf
    
    [mysqld]
    log-bin = mysql-bin
    expire_logs_days = 10
    server-id = 1
    binlog-do-db = typecho
    #binlog-ignore-db  = mysql 
  2. 检查是否开启
    -- 重启数据库
    systemctl restart mysql
    -- 检查是否正常开启(sql)
    show variables like '%log_bin%';
  3. 创建丛机使用的同步账号
    CREATE USER '***'@'%' IDENTIFIED BY '********';
    GRANT REPLICATION SLAVE ON *.* TO '***'@'%';

从 配置

/*
MYSQL版本:10.3.32-MariaDB
系统版本:Synology 7
从套装安装
*/
  1. 新建my.cnf
    # /var/packages/MariaDB10/etc/my.cnf
    
    [mysqld]
    log-bin = mysql-bin
    expire_logs_days = 10
    server-id = 2
    binlog-do-db = typecho
  2. 重启数据库
    # 重启数据库
    群辉套件中心>MariaDB10>停用>启动

保持数据一致

  1. 在主机上导出数据
    mkdir dmp && cd dmp
    # typecho 为数据库名
    mysqldump -uroot -p typecho > ./typecho.sql
  2. 在从机上导入
    # 从主机上把sql文件传过来 -PXXXX为ssh端口号
    scp -PXXXX 主机ip:~/dmp/typecho.sql ./
    # 导入
    mysql -uroot -p typecho < ./typecho.sql

启动主从

  1. 检查主机的日志起点
    # 在主机上执行
    # 拿到File和Position
    show master status;
  2. 配置从机
    # 在从机上执行
    # 停止
    stop slave;
    # 刷新日志
    flush logs;
    # 配置主机信息,用户为上面创建的用户,文件和位置为上一步拿到的值
    change master to master_host='主机IP',master_user='***',master_password='********',master_log_file='mysql-bin.000022',master_log_pos=771;
    #启动
    start slave;
    #检查,slave_io_running和slave_sql_running都为yes时配置成功
    show slave status;

最后发个贴试一下,从机是否同步数据:亲测可用