MariaDB设置主从复制

主从复制包含两个步骤: master 主服务器()上的设置,以及在 slave 从属服务器()上的设置.mysql

配置主服务器 mastersql

若是没有启用,则须要 激活二进制日志.数据库

master 设置惟一的  server_id ,全部的 slave 从属服务器也要设置  server_id; server_id值能够是整数型的数字(1 ~ 2^31-1), 在同一个复制组(replicating group)中的每台服务器的server_id都必须是惟一的.服务器

slave 从属服务器须要有链接并从master复制的权限. 一般是为每一台slave 建立一个单独的用户(user),而且只授予复制的权限(REPLICATION SLAVE 权限).dom

示例spa

[sql] view plain copy.net

 

 

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_host' IDENTIFIED BY 'bigs3cret';   rest

FLUSH PRIVILEGES日志

须要注意,有一些系统配置选项可能会影响主从复制,查看下面的变量以免发生问题:server

skip-networking,若是 "skip-networking=1",则服务器将限制只能由localhost链接,阻止其余机器远程连到此服务器上。

bind_address,相似地,若是 服务器只监听 127.0.0.1(localhost)TCP/IP链接,则远程的 slave也不能链接到此服务器.

配置从属服务器 slave

slave 指定惟一的 server_id. 全部服务器,无论是主服务器,仍是从服务器,都要设置 server_id. server_id值能够是整数型的数字(1 ~ 2^31-1), 在同一个复制组(replicating group)中的每台(/)服务器的server_id都必须是惟一的.

要让此配置项生效,须要从新启动服务.

获取 master 的二进制日志坐标

当查看当前 二进制日志 的position(位置),须要阻止任何数据库的提交.能够经过此坐标点告诉slave服务器从哪个特定的点开始复制。

master上执行命令 "FLUSH TABLES WITH READ LOCK",以强制写入日志,并锁定全部的表 —— 在此期间不能关闭会话,一关闭会话就会释放锁.

经过运行 "SHOW MASTER STATUS" 来获取二进制日志的当前位置信息.

记下 File 以及 Position 信息. 若是刚刚才开启了二进制日志功能,则为空.

而后,开始从master 拷贝 data slave,请参考: Backup, Restore and Import

将数据从master拷贝到slave之后,能够执行"UNLOCK TABLES;"释放master上的锁。

[sql] view plain copy

 

 

示例以下

-- 

SHOW MASTER STATUS; 

+--------------------+----------+--------------+------------------+ 

| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB | 

+--------------------+----------+--------------+------------------+ 

| mariadb-bin.000096 |      568 |              |                  | 

+--------------------+----------+--------------+------------------+ 

-- 

启动从属服务器 Slave

数据导入之后,就能够启动复制功能了。 经过执行 "CHANGE MASTER TO" 来开始.

确保 "MASTER_LOG_FILE",以及 "MASTER_LOG_POS" master早时候记下的信息一致.

示例以下:

[sql] view plain copy

 

 

CHANGE MASTER TO 

  MASTER_HOST='master.domain.com'

  MASTER_USER='replication_user'

  MASTER_PASSWORD='bigs3cret'

  MASTER_PORT=3306, 

  MASTER_LOG_FILE='mariadb-bin.000096'

  MASTER_LOG_POS=568, 

  MASTER_CONNECT_RETRY=10; 

而后,启动slave

[sql] view plain copy

 

 

START SLAVE; 

查看 slave状态:

[sql] view plain copy

 

 

SHOW SLAVE STATUS; 

若是须要暂停 slave 复制,则可以使用SQL :

[sql] view plain copy

 

 

stop slave; 

说明: 假如中止 MYSQL(MariaDB),而后从新启动,则 Slave会随mysqld 自动启动.因此不须要担忧平常的重启等操做.

[plain] view plain copy

 

 

[root@AY13 mysql]# service mysql stop 

Shutting down MySQL. SUCCESS!  

[root@AY13 mysql]# service mysql start 

Starting MySQL.. SUCCESS!  

更多问题,欢迎加入QQ群 《脚本娃娃-桃花岛》进行讨论,口令: Ext

相关文章
相关标签/搜索