mysql5.5主从服务配置

环境

服务器 ubuntu 14.04LTS
2台mysql服务器 192.168.11.25 192.168.9.32
mysql 版本5.5.22

主服务器 192.168.11.25

导出要同步的数据库

mysqldump -u root -p easy_drive > /home/easy_drive.sql #在MySQL主服务器进行操作,导出数据库osyunweidb到/home/oeasy_drive.sql

  #vi /etc/mysql/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=25       //[必须]服务器唯一ID,默认是1,一般取IP最后一段
       binlog-do-db=easy_drive //需要同步的数据库,如果是多个库,则为多行
      binlog-ignore-db=mysql //不需要同步的数据库

service mysqld restart #重启MySQL

mysql>GRANT REPLICATION SLAVE ON . to ‘mysync’@’%’ identified by ‘q123456’; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

mysql>flush privileges; #刷新系统授权表

mysql> show master status;
+——————+———-+—————————-+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+—————————-+——————+
| mysql-bin.000005 | 61426 | easy_drive,easy_drive_stat | mysql |
+——————+———-+—————————-+——————+
1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

从服务器 192.168.9.32

导入数据到数据库
mysql>source /home/carbit-fu/win7Share/easy_drive_stat.sql;

  #vi /etc/mysql/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=35      //[必须]服务器唯一ID,默认是1,一般取IP最后一段
       binlog-do-db=easy_drive //需要同步的数据库,如果是多个库,则为多行
      binlog-ignore-db=mysql //不需要同步的数据库

service mysqld restart #重启MySQL

mysql>change master to master_host='192.168.11.25',master_user='mysync',master_password='q123456',master_log_file='mysql-bin.000005',master_log_pos=61426; 

mysql>start slave;    //启动从服务器复制功能

mysql>slave start;    #开启slave同步进程
mysql>SHOW SLAVE STATUS\G   #查看slave同步信息,出现以下内容
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.21.169
                  Master_User: osyunweidbbak
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000019
          Read_Master_Log_Pos: 7131
               Relay_Log_File: MySQLSlave-relay-bin.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000019
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: osyunweidb
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table:
       Replicate_Ignore_Table:
1 row in set (0.00 sec)

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!

常见错误

Slave_IO_Running: NO
Slave_SQL_Running: Yes
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’

解决办法:
从机器停止slave
mysql> slave stop;
到master机器登陆mysql:
记录master的bin的位置,例如:mysql> show mster status;
+——————-+———-+————–+——————————————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————-+———-+————–+——————————————-+
| mysqld-bin.000011 | 106 | | information_schema,mysql |
+——————-+———-+————–+——————————————-+

马上到slave执行
mysql> CHANGE MASTER TO MASTER_LOG_FILE=’mysqld-bin.000011’,MASTER_LOG_POS=106;
mysql> slave start;
mysql> show slave status\G;

Slave_IO_Running: YES
Slave_SQL_Running: NO

并报出,有重复记录,无法插入的提示信息

解决这个问题,也有两个办法,一是在my.cnf里加

slave-skip-errors=1062

二是,直接执行

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

跳过一步,不作同步,根据情况可以设置多步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值