博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MariaDB设置主从复制[转载]
阅读量:6786 次
发布时间:2019-06-26

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

 
标签: 
翻译人员: 铁锚

翻译日期: 2013年12月25日

原文链接:  

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

配置主服务器 master
  1. 如果没有启用,则需要 .
  2. 给 master 设置唯一的  server_id ,所有的 slave 从属服务器也要设置  server_id; server_id值可以是整数型的数字(1 ~ 2^31-1), 在同一个复制组(replicating group)中的每台服务器的server_id都必须是唯一的.
  3. slave 从属服务器需要有连接并从master复制的权限. 通常是为每一台slave 创建一个单独的用户(user),并且只授予复制的权限(REPLICATION SLAVE 权限).
示例
[sql]   
 
 
  1. GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_host' IDENTIFIED BY 'bigs3cret';   
  2. FLUSH PRIVILEGES;  
需要注意,有一些系统配置选项可能会影响主从复制,查看下面的变量以避免发生问题:
skip-networking,如果 "skip-networking=1",则服务器将限制只能由localhost连接,阻止其他机器远程连到此服务器上。
bind_address,类似地,如果 服务器只监听 127.0.0.1(localhost)的TCP/IP连接,则远程的 slave也不能连接到此服务器.
配置从属服务器 slave
  1. 给 slave 指定唯一的 server_id. 所有服务器,不管是主服务器,还是从服务器,都要设置 server_id. server_id值可以是整数型的数字(1 ~ 2^31-1), 在同一个复制组(replicating group)中的每台(/个)服务器的server_id都必须是唯一的.
要让此配置项生效,需要重新启动服务.
获取 master 的二进制日志坐标
当查看当前 二进制日志 的position(位置)时,需要阻止任何数据库的提交.可以通过此坐标点告诉slave服务器从哪一个特定的点开始复制。
  1. 在 master上执行命令 "FLUSH TABLES WITH READ LOCK",以强制写入日志,并锁定所有的表 —— 在此期间不能关闭会话,一关闭会话就会释放锁.
  2. 通过运行 "SHOW MASTER STATUS" 来获取二进制日志的当前位置信息.
  3. 记下 File 以及 Position 信息. 如果刚刚才开启了二进制日志功能,则为空.
  4. 然后,开始从master 拷贝 data 到 slave,请参考: 
  5. 将数据从master拷贝到slave以后,可以执行"UNLOCK TABLES;"释放master上的锁。

 

[sql]   
 
 
  1. 示例如下:  
  2. --  
  3. SHOW MASTER STATUS;  
  4. +--------------------+----------+--------------+------------------+  
  5. | File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  6. +--------------------+----------+--------------+------------------+  
  7. | mariadb-bin.000096 |      568 |              |                  |  
  8. +--------------------+----------+--------------+------------------+  
  9. --  

 

启动从属服务器 Slave
数据导入以后,就可以启动复制功能了。 通过执行 "
CHANGE MASTER TO" 来开始.
确保 "
MASTER_LOG_FILE",以及 "
MASTER_LOG_POS" 与master早时候记下的信息一致.
示例如下:
[sql]   
 
 
  1. CHANGE MASTER TO  
  2.   MASTER_HOST='master.domain.com',  
  3.   MASTER_USER='replication_user',  
  4.   MASTER_PASSWORD='bigs3cret',  
  5.   MASTER_PORT=3306,  
  6.   MASTER_LOG_FILE='mariadb-bin.000096',  
  7.   MASTER_LOG_POS=568,  
  8.   MASTER_CONNECT_RETRY=10;  
然后,启动slave
[sql]   
 
 
  1. START SLAVE;  
查看 slave状态:
[sql]   
 
 
  1. SHOW SLAVE STATUS;  

如果需要暂停 slave 复制,则可使用SQL :

 

[sql]   
 
 
  1. stop slave;  
说明: 假如停止 MYSQL(MariaDB),然后重新启动,则 Slave会随mysqld 自动启动.所以不需要担心日常的重启等操作.
[plain]   
 
 
  1. [root@AY13 mysql]# service mysql stop  
  2. Shutting down MySQL. SUCCESS!   
  3. [root@AY13 mysql]# service mysql start  
  4. Starting MySQL.. SUCCESS!   
更多问题,欢迎加入QQ群 《脚本娃娃-桃花岛》进行讨论,口令: Ext

转载于:https://www.cnblogs.com/fangyuan303687320/p/5395122.html

你可能感兴趣的文章
前端传递json数据给后台
查看>>
什么样的Web开发框架才是好的前端框架
查看>>
【git命令】git-rebase
查看>>
Java定时任务调度工具Timer
查看>>
混淆js问题
查看>>
vim编辑模式,命令模式
查看>>
Linux日常运维管理技巧-w命令、vmstat 命令、top 命令、sar 命令、nload命令
查看>>
七周二次课(11月28日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包...
查看>>
源码包安装
查看>>
上那些酷炫的数据大屏_你猜是多久搞出来的?
查看>>
3999美元掀价格战,Velodyne宣布16线激光雷达降价50%
查看>>
java.lang.NoSuchMethodError问题分析
查看>>
Spring Ioc的实现----------用idea实现控制反转
查看>>
Java基础——变量
查看>>
跨域获取图片并自行上传保存
查看>>
Junit,Mockito,PowerMockito 进行单元测试
查看>>
要通过面试,Lamdba要了解多少?
查看>>
vim介绍、颜色显示和移动光标、一般模式下复制、剪切和粘贴
查看>>
PHP安装
查看>>
mysql用户管理-常用sql-数据库备份恢复
查看>>