mariadb10.5.8版本主从搭建

主从服务安装我们先略过了,网上的安装教程一大把,直接开始讲配置

主服务配置

[mysqld]
...

server-id=1
#开启二进制日志
log-bin=mysql-bin
#中继日志的前缀名称
relay-log=mysql-relay-bin
#控制binlog的写入频率。每执行多少次事务写入一次
sync_binlog=1
#设置logbin格式
binlog_format=row
#二进制日志中忽略的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#二进制日志记录的数据库
binlog-do-db=要同步的库名

登录主服务器客户端并且不要关闭该会话

mysql
创建slave复制用的用户
> CREATE USER 'slave'@'%' IDENTIFIED BY '密码';
> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
> use 要同步的库名;
设置为只读状态,并且不要关闭该会话,不然只读状态会取消
> FLUSH TABLES WITH READ LOCK;
查看master状态信息,下面的File和Position必须记录下来,是后面配置slave必须用到的参数
> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |    40428 | 要同步的库名  | mysql            |
+------------------+----------+--------------+------------------+

从服务器配置

[mysqld]
...

server-id=2
#开启二进制日志
log-bin=mysql-bin
#中继日志的前缀名称
relay-log=mysql-relay-bin
#控制binlog的写入频率。每执行多少次事务写入一次
sync_binlog=1
#设置logbin格式
binlog_format=row
#二进制日志中忽略的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#设置普通账户处于只读模式
read_only=1
#在数据库内的系统表中存储主库的相关信息,而不是使用默认的文件形式
master_info_repository=TABLE
#在数据库内的系统表中存储中继日志的状态和信息,而不是使用默认的文件形式
relay_log_info_repository=TABLE
#遇到指定错误码时尝试跳过错误,继续执行后续的复制操作
slave-skip-errors=1032, 1062, 1007, 1007
#设定需要忽略的复制数据库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
#设定需要复制的数据库
replicate-do-db=要同步的库名

接下来要完全拷贝master需要复制的数据库下所有内容到slave相应数据库下

主服务器执行
mysqldump -P3306 -uroot -p密码 --default-character-set=utf8mb4 --set-charset --databases 需要复制的数据库 > database.sql

把上面备份的database.sql拷贝到从服务器

从服务器执行
mysql
> CREATE DATABASE IF NOT EXISTS `要同步的库名`;
> use 要同步的库名;
> source 绝对路径/database.sql;

登录从服务器客户端

mysql
设置master信息,MASTER_LOG_FILE和MASTER_LOG_POS分别使用前面主服务器里读到的master状态信息的File和Position
> CHANGE MASTER TO MASTER_HOST='主服务ip',MASTER_USER='slave',MASTER_PASSWORD='密码',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=40428;
启动slave复制进程
> start slave;
查看slave状态信息
> show slave status\G

再次回到主服务器客户端

解除只读状态
> UNLOCK TABLES;

完成!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主从复制是一种常用的数据库备份和高可用解决方案,而xtrabackup是Percona公司开发的一款开源工具,用于MySQL和MariaDB数据库的热备份。下面是xtrabackup主从搭建的一般步骤: 1. 安装xtrabackup工具:在主服务器和从服务器上都需要安装xtrabackup工具。你可以从Percona官方网站下载并安装适合你操作系统的xtrabackup。 2. 配置主服务器:在主服务器上,需要进行以下配置: - 在MySQL配置文件中开启二进制日志(binlog)功能。在配置文件中添加如下行: ``` log_bin = /var/lib/mysql/mysql-bin.log server_id = 1 ``` - 重启MySQL服务使配置生效。 3. 备份主服务器:使用xtrabackup工具备份主服务器的数据。 - 执行以下命令进行备份: ``` xtrabackup --backup --target-dir=/path/to/backup ``` - 备份完成后,会在指定目录生成备份文件。 4. 恢复备份到从服务器:将主服务器的备份数据恢复到从服务器。 - 在从服务器上执行以下命令进行恢复: ``` xtrabackup --prepare --target-dir=/path/to/backup ``` - 恢复完成后,从服务器的数据将与主服务器一致。 5. 配置从服务器:在从服务器上进行以下配置: - 在MySQL配置文件中配置从服务器的唯一ID(server_id),并禁用二进制日志(binlog)。在配置文件中添加如下行: ``` server_id = 2 log_bin = /dev/null ``` - 重启MySQL服务使配置生效。 6. 启动从服务器:启动从服务器的MySQL服务。 7. 配置主从复制:在主服务器上配置从服务器的连接信息,并开始主从复制。 - 在主服务器上执行以下命令: ``` mysql> CREATE USER 'repl'@'slave_ip' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slave_ip'; mysql> FLUSH PRIVILEGES; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; ``` - 记下上述命令的输出结果,包括File和Position的值。 8. 启动主从复制:在从服务器上执行以下命令开始主从复制: - 在从服务器上执行以下命令: ``` mysql> CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_binlog_file', MASTER_LOG_POS=master_binlog_position; mysql> START SLAVE; ``` - 替换上述命令中的参数值为相应的值。 完成以上步骤后,主从复制就搭建完成了。从服务器会自动从主服务器同步数据更新。你可以根据需要对主服务器进行写操作,而从服务器可以用于读操作或备份。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值