linux下mysql主从复制,实现数据库同步
运行环境:
查看linux版本命令:lsb_release -a
主服务器:centos release 6.5 mysql 5.6.10-log IP:172.17.200.25
从服务器:centos release 6.5 mysql 5.6.10-log IP:172.17.200.26
主服务器dashi数据库
mysql默认配置文件,如不特殊指定默认为/etc/my.cnf
mysql配置文件查找顺序:/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
我是默认设置 /etc/my.cnf
进入主服务 msyql -uroot -p
一:主服务
1.1、创建一个复制用户dashi,具有replication slave 权限。
mysql>grant replication slave on *.* to 'dashi'@'172.17.200.26' identified by 'dashi';
mysql>flush privileges;
1.2、编辑my.cnf文件
vim /etc/my.cnf
增加 server-id=107
log-bin=bin.log 文件路径自己定(推荐绝对路径)
1.3 重启mysql
service mysqld restart
1.4、设置读锁
mysql>flush tables with read lock;
1.5、得到binlog日志文件名和偏移量(此处记住File名称和Position值,后面slave服务器配置时需要用到)
mysql> show master status;
+------------+------------+--------------+--------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------+------------+--------------+--------------------------------------------------+-------------------+
| bin.000031 | 1011406487 | | information_schema,mysql,performance_schema,test | |
+------------+------------+--------------+--------------------------------------------------+-------------------+
1 row in set (0.00 sec)
1.6、备份要同步的数据库
mysqldump -uroot -p test>test.sql
1.7解锁
mysql>unlock tables;
二:从服务器(172.17.200.26)
2.1、编辑my.cnf文件
vim /etc/my.cnf
增加 server-id=2
2.2 重启mysql
service mysqld restart
2.3、对从数据库进行相应设置
此处要注意logfile的名称和position的值,其余host、user和password为主数据库设置的账号和密码
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> change master to
-> master_host='172.17.200.25',
-> master_user='dashi',
-> master_password='dashi',
-> master_log_file='bin.log.000001',
-> master_log_pos=713;
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
在这里主要是看:
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
三、测试:
上述项配置完以后可查看master和slave上线程的状态。在master上,你可以看到slave的I/O线程创建的连接:在master上输入show processlist\G;
mysql> show processlist \G;
*************************** 1. row ***************************
Id: 10865
User: dashi
Host: 172.17.200.25:37369
db: dashi
Command: Sleep
Time: 7
State:
Info: NULL
*************************** 2. row ***************************
Id: 10866
User: dashi
Host: 172.17.200.25:37370
db: dashi
Command: Sleep
Time: 7
State:
Info: NULL
*************************** 3. row ***************************
Id: 10873
User: dashi
Host: 172.17.200.26:37928
db: dashi
Command: Execute
Time: 1
State: Sending data
Info: select count(1) from trade_click where link=?
*************************** 4. row ***************************
Id: 10874
User: dashi
Host: 172.17.200.26:37929
db: dashi
Command: Sleep
Time: 9
State:
Info: NULL
*************************** 5. row ***************************
Id: 10882
User: dashi
Host: 172.17.200.26:37962
db: dashi
Command: Sleep
Time: 78
State:
Info: NULL
ERROR:
No query specified
3.1、在主数据库:192.168.0.107上添加新数据
3.2、在从库查找记录,是否存在
四:总结
主服务器master记录数据库操作日志到Binary log,从服务器开启i/o线程将二进制日志记录的操作同步到relay log(存在从服务器的缓存中),另外sql线程将relay log日志记录的操作在从服务器执行,从而达到主从复制。
linux下mysql主从复制,实现数据库同步的更多相关文章
- linux下mysql定时备份数据库
linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈 一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...
- Linux下MySQL导入导出数据库
linux下 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql# ...
- Linux下 MYSQL 主从复制、同步
mysql从3.23.15版本以后提供数据库复制功能.利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能. 主从模式(A->B)的配置过程 ...
- Linux下Mysql主从复制(Master-Slave)与读写分离(Amoeba)实践
一.为什么要做Mysql的主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...
- Linux下MySQL主从复制(Binlog)的部署过程
什么是 MySQL 的主从复制 Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上 ...
- Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记
GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...
- mysql学习(3)-linux下mysql主从复制
前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...
- linux下mysql主从复制搭建
目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制 环境: 主数据库: 192.168.1.1 从数据库: 192.168.1.2 mysql安装可参考:https:// ...
- mysql主从复制实现数据库同步
mysql主从复制相信已经用得很多了,但是由于工作原因一直没怎么用过.趁着这段时间相对空闲,也就自己实现一遍.尽管互联网上已有大把类似的文章,但是自身实现的仍然值得记录. 环境: 主服务器:cento ...
随机推荐
- sql: 生日赠品中的相关算法
---2013年10月9日生日,就以2012年9月1日至2013年8月31日計算 (因為係生日月份前兩個月之最後一天為結算日) DECLARE @birthday datetime,@now date ...
- scss-嵌套规则
在编写css代码的时候,可能由于嵌套的原因,需要多次重复书写选择器. 代码如下: #content article h1 { color: #333 } #content article p { ma ...
- show与ShowDialog substring
substring public String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串.该子字符串从指定的 beg ...
- jQuery判断checkbox是否选中?操作checkbox(不)选中?
HTML <form action=""> <input type="checkbox" name="c ...
- C# Process.WaitForExit()与死锁
前段时间遇到一个问题,搞得焦头烂额,现在记录下来,希望对大家有所帮助. 程序里我使用Process类启动命令行,执行批处理文件 'Create.cmd'(当我手工将此文件拖入命令行执行时,一切正常). ...
- rac数据库默认sql tuning advisor,导致大量library cache lock
rac数据库默认sql tuning advisor,导致大量library cache lock 问题现象:客户反映周六周日固定十点钟,一个程序会特别慢(大概10分钟),平时1到2秒.查看当时的日志 ...
- c++下各种编码格式转换的方法
1.利用c++11新特性 std::wstring_convert配合std::codecvt模板类 作者:Gomo Psivarh链接:https://www.zhihu.com/question/ ...
- Android(java)学习笔记58:Android 英文朗诵
1. 首先,我先把代码放到下面: package com.himi.speaker; import java.util.Locale; import android.app.Activity; imp ...
- LA 2038 最少点覆盖
题目链接:https://vjudge.net/problem/UVALive-2038 题意:我看了原题,lrj的书上题意写错了,应该是最少点覆盖,当然可以用最大匹配去做,由于是树形的: 可以树形D ...
- mysql时间日期函数
now(), current_timestamp(); -- 当前日期时间 current_date(); -- 当前日期 current_time(); -- 当前时间 date('yyyy-mm- ...