安装mysql数据库主从复制,步骤如下:
1、主从服务器分别作以下准备:
    1.1、数据库版本完全一致
    1.2、修改root的密码, 不改也可以

2、修改主服务器master

#vi /etc/my.cnf

[mysqld]
server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段,方便知道id是多少
log-bin=mysql-bin //[必须]启用二进制日志
slave-skip-errors=all //忽略掉一些没啥大问题的错误

下面的可以选配,一般都同步整个库,包括用户待,所以可以不配置:
binlog-do-db=repl // 需要记录二进制日志的数据库,如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql //不需要记录二进制日志的数据库,如果有多个数据库可用逗号分隔,或者使用多个binlog-ignore-db选项
replicate-do-db=repl // 需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
replicate-ignore-db=mysql //不需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
log-slave-updates //这个参数是把更新的记录写到二进制文件中,保证slave挂在任何一台master上都会接收到另一个master的写入信息

3、修改从服务器slave

#vi /etc/my.cnf

[mysqld]
server-id=226 //[必须]服务器唯一ID
log-bin=mysql-bin //启用二进制日志,单向同步不是必须,但双向同步则是[必须]
slave-skip-errors=all //忽略掉一些没啥大问题的错误

4、重启两台服务器的mysql

5、在主服务器上建立帐户并授权slave

一般不用root帐号,'%'表示所有客户端都能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.1.9,加强安全。
CREATE USER 'myslave'@'%' IDENTIFIED BY 'myslave123';
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'%';

6、登录主服务器的mysql,查询master的状态,并记下状态值
6.1、查询master的状态前,需要保证在查询前后服务数据被更改,需要对主服务器增加只读锁

mysql>flush tables with read lock;

6.2、增加只读锁后,查询master状态,记下当前数据状态的值

mysql>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 337      |              |                  |
+------------------+----------+--------------+------------------+
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化,6.1加锁也是为了在6.3步骤备份出该状态下整个的数据库

6.3、直接把整个主库复制一份出来当从库,并启动从库(如果要做双向同步,同样需要对从库加锁,并且记下其状态值,数据必须和主库备份时一致)

7、配置从服务器slave
7.1、配置主服务器信息,注意337数字前后无单引号

mysql>change master to MASTER_HOST='192.168.1.47', MASTER_PORT=3306, MASTER_USER='myslave', MASTER_PASSWORD='myslave123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=337;

7.2、启动从服务器复制功能

mysql>start slave;

7.3、检查从服务器复制功能状态,大概返回1行数据

mysql> show slave status;
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.47 //主服务器地址
Master_User: myslave //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 337 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
......
注:Slave_IO_Running及Slave_SQL_Running两个进程都必须是Yes状态,否则都是错误状态。

8、如果是单向同步,则执行下面步骤结束配置。
8.1、主服务器执行以下命令,用于解开服务器只读锁,让主服务器可以正常使用

mysql>unlock tables;

9、双向热备
9.1、配置双向同步方法就是在单向同步的基础上略加改动,即在从机上做主机配置,在主机上做从机配置。
9.2、重复5-8步骤,但主从服务器互换

mysql主从配置(基于mysql5.5.x)的更多相关文章

  1. Windows下Mysql主从配置(Mysql5.5)

    主数据库IP:192.168.3.169从数据库IP:192.168.3.34 主数据库配置my.inin: 在[mysqld]下添加配置数据:server-id=1     #配一个唯一的ID编号, ...

  2. Mysql主从配置+读写分离

    Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...

  3. mysql主从配置实现一主一从读写分离

    主从介绍Mysql主从又叫Replication.AB复制.简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步mysql主从是基于binlog,主上需开启bin ...

  4. mysql主从配置

    引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...

  5. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  6. mysql 主从 配置和同步管理

    首先呢,需要有两个mysql服务器.如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样.我用的是一个是默认的3306,从服务器用的是3307端口. 在主服务创建 ...

  7. MySql主从配置实践及其优势浅谈

    MySql主从配置实践及其优势浅谈 1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my ...

  8. windows环境下mysql主从配置

    mysql主从配置. 相关理论知识可以百度一下,这里就不多说了,直接说如何配置. 一.环境介绍及说明 主库所在的操作系统:win7 主库的版本:mysql-5.6.24-winx64.zip 主库的i ...

  9. 黄聪:Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  10. linux系统mysql主从配置

    一.原理 mysql主从配置的流程大体如图: 1)master会将变动记录到二进制日志里面: 2)master有一个I/O线程将二进制日志发送到slave; 3) slave有一个I/O线程把mast ...

随机推荐

  1. 移动BI来袭我们要做哪些准备?

    (了解更多商业智能行业资讯.商业智能BI解决方案.商业智能客户案例,请访问:http://www.powerbi.com.cn/service) 随着智能手机的发展,商业智能(BI)基础架构也扩展到移 ...

  2. linux-----------linux查看并发数

    1.查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a ...

  3. HTML5音频视频-视频播放

  4. web网站的url设计

    通常再web网站设计url时是按功能模块设计url,然后再control层一个功能模块对应一个control层类,每个control类中的方法映射相应的url请求. 如果遇见另一个功能模块需要实现同样 ...

  5. Java 之 List<T> 接口的实现:ArrayList

    Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ArrayLis ...

  6. 通过jxl 读取excel 文件中的日期,并计算时间间隔

    java读取excel里面的日期会出现相差8小时的问题. 比如excel里面有一个日期是:2012-7-2 17:14:03秒,用Cell cell=readSheet.getCell(colNo, ...

  7. setCapture只能作用于鼠标不可作用于键盘等其它事件

    处理的优点非常类似于流媒体的优点.分析能够立即开始,而不是等待所有的数据被处理.而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中.这对于大型文档来说是个巨大的优点.事实上,应用 ...

  8. 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 环境安装篇

    最近因为有个项目需要制作APP,考虑到需要兼容Android和IOS,所以想采用WebAPP的方式来开发.现在是从零开始学习之路,走起-   通过网上博客和论坛,开始安装了一堆软件: 1. Sench ...

  9. anagularJs指令的controller,link,compile有什么不同

    /directives.js增加exampleDirective phonecatDirectives.directive('exampleDirective', function() { retur ...

  10. .Net Core[译文]

    新文档 /* GitHub stylesheet for MarkdownPad (http://markdownpad.com) */ /* Author: Nicolas Hery - http: ...