Maria数据库怎么复制到mysql_MySQL、MariaDB数据库的AB复制配置过程
发布日期:2021-06-24 13:12:09 浏览次数:4 分类:技术文章

本文共 3299 字,大约阅读时间需要 10 分钟。

MySQL、MariaDB数据库的AB复制配置过程。MYSQL数据库没有增量备份的机制,所以如果面对比较大的数据量,并且需要时时更新时,我们可以利用mysql提供的replication机制来间接实现增量备份功能。Replication是一种异步复制过程。

Mysql的AB复制方式大致分为4种:常规的一主一从模式、双主模式、一主多从模式、多主多从模式等,可以根据实际情况来搭建环境。本文采用最常规的一主一从的模式。

Mysql的AB复制功能在版本上需要注意,MYSQL的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。

从机的mysql版本一定不小于主机的mysql (mariadb) 版本

下面我来介绍下简单配置和详细配置

mysql 5.1 的简单配置

一、简单配置

Mysql 主机IP 10.0.0.201 (centos 5.6 64位 mysql 5.1 )

Mysql 从机IP 10.0.0.202 (redhat 6.0 32 位 mysql 5.2)

(一)主机配置

修改 /etc/my.cnf 文件

[mysqld]

server-id=1

log-bin=mysql-bin.log

重启mysql

mysql -p 进入mysql

mysql >grant all on *.* to ‘slave’@’10.0.0.201′ identified by ‘slave202′; (把所有数据库的所有表,all权限给IP为10.0.0.201 的slave用户)

mysql> flush tables with read lock;

换个终端 tar czf mysql.back.tar.gz /var/lib/mysql

如果感觉必要的话倒到从库中

mysql > unlock tables

(二)从库配置

vi /etc/my.cnf

[mysqld]

server-id=2

master-host=10.0.0.201

master-user=slave

master-password=slave201

然后重启数据库

mysql -p

进入数据库后

mysql> show master; 查看状态

>slave stop;

mysql> change master to master_host = ’10.0.0.201′, # master的ip - >master_user=’slave’, # 连接master的用户名

->master_password = ‘slave201′; # 连接master的密码

mysql> slave start

(三)你就可以测试了

MariaDB 5.5 的复杂配置

二、详细配置AB复制

Mysql 主机IP 10.0.0.201 (ubuntu server 12.04 mariadb 5.5)

Mysql 从机IP 10.0.0.202 (redhat 6.0 mariadb 10.0)

首先进行主mysql的设置

1,进入mysql的命令行,在master上添加slave复制用的账号,使用一下命 令: mysql> grant all on *.* to ‘slave’@’10.0.0.202′ identified by ‘slave201′;

2,对mysql的配置文件进行修改,即/etc/my.cnf :

[mysqld]

server-id = 1 # master的id号

log-bin=mysql-bin.log # 开启二进制日志,名称是mysql-bin.0xxxxx

long_query_time =1 # 慢查询超时记录,要根据实际情况设置

log-slow-queries=slowqueris.log # 慢查询日志存放的位置

binlog-do-db=first # 记录first这个库的日志

binlog-ignore-db = mysql # 不记录mysql这个库的日

auto-increment-increment = 2 # replication的总数,此处是2

auto-increment-offset = 1 # 和server-id的值一样,是指replication的id

master-connect-retry=60 # 预设的重新连接master的时间

replicate-do-db=first # 只复制first这个库的数据(可写多个)

replicate-ignore-db=mysql # 不复制的库(可写多个)

然后重启mysql,查看二进制日志是否开启:

mysql> show variables like ‘log_bin’;

3,从master导出数据,此处适用的是mysqldump方式:

(1)首先对需要导出数据的库加读锁:

mysql> flush tables with read lock;

(2)导出数据: ./mysqldump -u root -p zzz > zzz.dump

二,然后配置从mysql 。

1,对mysql的配置文件进行修改,即/etc/my.cnf :

[mysqld]

server-id=2 # slave的id号

log-bin=master.log # 开启二进制日志,名称是master.0xxxxx

long_query_time =1

log-slow-queries=slowqueris.log

binlog-do-db=zzz

binlog-ignore-db = mysql

auto-increment-increment = 2

auto-increment-offset = 2 # 和server-id的值一样,是指replication的id

master-connect-retry=60

replicate-do-db=zzz

2,重启mysql,查看二进制日志是否开启。

3,导入slave数据: ./mysql -u root -p zzz < zzz.dump

4,查看master上的状态: mysql> show master status;

5,在slave设置,制定复制用的用户、master的ip、port以及开始复制的日志和偏移量值: mysql> change master to master_host = ’10.0.0.201′, # master的ip - >master_user=’slave’, # 连接master的用户名

->master_password = ‘slave201′, # 连接master的密码

->master_port=3306, # master上mysql端口

->master_log_file = ‘mysql-bin.000006′, # 读取的master日志

->master_log_pos=314; # 日志文件的开始位置, 上图中的Position数值

有些参数从上面的状态表中得到。

(master_log_file、master_log_pos 可以不写)

6,启动slave线程: mysql> start slave;

7,解除master上的锁,在master上使用下面的命令:

mysql> unlock tables;

8,查看slave的状态,使用命令: show slave status;

Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes如果这两个状态不是yes,那么请检查上面的配置是否正确,主要是file和position设置是否正确,从库是否能用主库的账号登陆

可以看到一些参数来确认一下

http://www.server110.com/mariadb/201404/9159.html

转载地址:https://blog.csdn.net/weixin_33042659/article/details/113586217 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python3 字典_python3-字典
下一篇:linux mysql c++编程_Linux下进行MYSQL的C++编程起步手记

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月27日 10时03分46秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章