mysql主从复制(Windows虚拟机安装两个mysql)

来源:互联网 发布:手机图片加密软件 编辑:程序博客网 时间:2024/05/21 17:23

原理:主服务器(Master)负责网站NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模特性块固定访问Slave服务器,或者自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

一、配置Master主服务器

    1 mysql> CREATE USER 'master'@'192.168.%' IDENTIFIED BY '123456'; //创建新用户    2 //master用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为123456。说明一下192.168.0.%,这个配置是指明maseter用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以maseter用户登陆主服务器。当然你也可以指定固定Ip,增加安全性    3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'master'@'192.168.0.%' IDENTIFIED BY '123456';
    4 如果你的mysql没有安装在C盘下,你需要先使用DOS命令进入mysql的安装目录下的bin目录中
    5 确保主数据库与从数据库一模一样,表和表结构。
    6 mysql数据库中的命令必须以分号结尾“;”

二、配置主数据库的my.ini(因为是在window下,所以是my.ini不是my.cnf)。

    [mysqld]

    server-id=1//给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
    log-bin=log
    binlog-do-db=zk_master//要同步的zk_master数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
    binlog-ignore-db=mysql //要忽略的数据库

三、置从数据库的my.ini
    [mysqld]

    server-id=2
    master-host=192.168.1.111
    master-user=master//第一步创建账号的用户名
    master-password=123456   //第一步创建账号的密码
    master-port=3306
    master-connect-retry=60
    replicate-do-db=zk_slave        //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
    replicate-ignore-db=mysql  //要忽略的数据库 

四、验证是否成功

   进入mysql,后输入命令:show slave status\G。将显示下图。

如果slave_io_running和slave_sql_running都为yes,那么表明可以成功同步了

五、监控主从复制

编写一shell脚本,用nagios监控slave的两个yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主从有问题了,发短信警报吧。

六、但是

master-host=192.168.8.111
master-user=backup
master-password=backup
master-port=3306
master-connect-retry=60
这些参数 mysql5.5已经废弃了  

在从库上执行如下命令;
change master to master_host='masterIP', master_user='masterUser', master_password='masterPASS';

slave start;

切记:

此处是masterIP地址,不是slave地址,而登陆账号为是masterUser账号密码,不是网上说的从库用户和密码,实践出真知。