Mysql主从配置说明

*准备工作:
    ·一般管 master 称为主服务;slave 称为从服务。
   ·主、从端的mysql版本最好一致,不然在后期同步过程中会遇到问题。
   ·关掉机器的防火墙。
   ·主机ip:192.168.172.38
   ·从机ip:192.168.172.37

*主机配置:
   ·  修改 mysql的配置文件(my.ini/my.cnf ):
#Master config
server-id = 1                          #标识主机唯一id
log-bin = mysql-bin               # 开启日志存储,也可以自动以日志存储位置
binlog-do-db=cpsystem        #需要同步的数据库,如果需要配置多个数据库,复制配置就可以了

   · 在master上为slave添加一个同步账号:
                            mysql> grant replication slave on *.* to '账户'@'192.168.172.37' identified by '密码';
          其中: IP地址:为从机服务的地址

      · 配置完毕,重启服务。

   ·  查看主机配置状况: show master status\G;  
   成功显示内容:
              File: log.000027
Position: 3151
Binlog_Do_DB: cpsystem
Binlog_Ignore_DB:

*从机配置:
   · 修改 mysql的配置文件(my.ini/my.cnf ):
      #slave config
      server-id=2                                       #标识主机唯一id,不能与主机服务相同
master-host=192.168.172.38            #主机服务ip
master-user= 账户                             #之前为从机分配的账户
master-password= 密码                     #之前为从机分配的密码
master-port=3306                            #主机端口,默认3306,可以不配置
replicate-do-db=cpsystem                #需要同步的数据库名称

   ·配置完毕,重启服务。

   ·启动slave:start slave; 

   · 查看从机配置状况: show slave status\G;
       成功显示内容:
       Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。

*相关提示:
· 1  ,主、从服务端最初配置需要提前建立好相同的数据库结构。数据结构不统一,会导致同步失败。
     1.1 备份主数据库文件: 注意在导出数据之前先对主数据库进行READ LOCK,以保证数据的一致性。
                mysql>  FLUSH  TABLES  WITH  READ  LOCK ;
     1.2 导出主表数据:
         mysqldump -h127.0.0.1 -p3306 -uroot -p cpsystem > d:\copy_cpsystem.sql  
     1.3 数据备份完毕恢复写操作:
         mysql > unlock tables;
         1.4   将刚才主数据备份的copy_cpsystem.sql 复制到从数据库,进行导入。

·2,问题解决: Slave_IO_Running: No或者Slave_SQL_Running: No
                    2.1,停掉slave服务
                                  mysql> slave stop;

                    2.2,解决办法
----解决办法1----
a. 在master上查看。
mysql> show master status\G;
*************************** 1. row ***************************
File: log.000027
Position: 3151
Binlog_Do_DB: cpsystem
Binlog_Ignore_DB:

b.到slave上手动同步。
mysql>change master to
>master_host='192.168.172.38',
>master_user='masterdb',
>master_password='masterdb',
>master_log_file='log.000027',
>master_log_pos=3151;
Query OK, 0 rows affected (0.00 sec)

----解决方法2----(未试验过,只试验过解决方法1)
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;

                  2.3, 启动slave服务
                         mysql> slave start;

                  2.4, 再次查看Slave_IO_Running、Slave_SQL_Running状态,为Yes则表明设置成功。

   ·3,显示数据库进程: show processlist\G;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值