MySQL数据库设置主从同步

主从同步的特点:

逻辑的

异步的

主从同步的作用

1.备份

2.读写分离

主从同步的步骤

  • 准备环境

    1, mysql版本一致 5.5以上

    2, 主从数据库一致

主库master修改

1.修改my.cnf

  1. # 打开主库binlog
  2. log-bin = mysql-bin
  3. # 主数据库端ID号(区别于从库)
  4. server-id = 1

2.重启mysql,创建用于同步的账号

  1. grant replication slave on *.* to 'rep'@'%' identified by '123456';
  2. flush privileges;

查看master状态

  1. mysql> show master status;
  2. +------------------+----------+--------------+------------------+
  3. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  4. +------------------+----------+--------------+------------------+
  5. | mysql-bin.000009 | 196 | | |
  6. +------------------+----------+--------------+------------------+
  7. 1 row in set

注:执行完这个步骤后不要再操作主数据库了,防止主数据库状态值变化

从库slave的修改

1.修改mysql配置

  1. # 从数据库端ID号
  2. server-id =2

执行同步命令

  1. # 执行同步命令,设置主数据库ip,同步帐号密码,同步位置
  2. mysql>change master to master_host='192.168.1.2',master_user='rep',master_password='123456',master_log_file='mysql-bin.000009',master_log_pos=196;
  3. # 开启同步功能
  4. mysql>start slave;

检查从库的状态

  1. mysql> show slave status\G;
  2. *************************** 1. row ***************************
  3. Slave_IO_State: Waiting for master to send event
  4. Master_Host: 192.168.1.2
  5. Master_User: rep
  6. Master_Port: 3306
  7. Connect_Retry: 60
  8. Master_Log_File: mysql-bin.000009
  9. Read_Master_Log_Pos: 196
  10. Relay_Log_File: vicky-relay-bin.000002
  11. Relay_Log_Pos: 253
  12. Relay_Master_Log_File: mysql-bin.000009
  13. Slave_IO_Running: Yes
  14. Slave_SQL_Running: Yes
  15. Replicate_Do_DB:
  16. Replicate_Ignore_DB:

注:Slave_IO_Running及Slave_SQL_Running进程必须正常运行,即YES状态,否则说明同步失败。

到这里,主从数据库设置工作已经完成,自己可以新建数据库和表,插入和修改数据,测试一下是否成功

其他可能用到的相关参数

master端

  1. # 不同步哪些数据库
  2. binlog-ignore-db = mysql
  3. binlog-ignore-db = test
  4. binlog-ignore-db = information_schema
  5. # 只同步哪些数据库,除此之外,其他不同步
  6. binlog-do-db = game
  7. # 日志保留时间
  8. expire_logs_days = 10
  9. # 控制binlog的写入频率。每执行多少次事务写入一次
  10. # 这个参数性能消耗很大,但可减小MySQL崩溃造成的损失
  11. sync_binlog = 5
  12. # 日志格式,建议mixed
  13. # statement 保存SQL语句
  14. # row 保存影响记录数据
  15. # mixed 前面两种的结合
  16. binlog_format = mixed

slave端

  1. # 停止主从同步
  2. mysql> stop slave;
  3. # 连接断开时,重新连接超时时间
  4. mysql> change master to master_connect_retry=50;
  5. # 开启主从同步
  6. mysql> start slave;

以上连接超时设置,类似方式可用于设置主数据库ip,同步帐号密码,同步位置

拓展阅读:MySQL日志格式 binlog_format

binlog的常用功能

常用功能 语句
查看bin-log开关 show variables like "%log_bin%";
查看log格式 show variables like "%format%";
查看binlog show binary log;
刷新binlog reset master;
- -
查看版本 \s;
查看引擎 show variables like "%engine%";
查看字符集 show variables like "%char%";
查看slowlog show variables like "%slow%";
- -
建库 create database student;
建表 create table stu(id int,name char(40));
插入数据 insert into stu values (1,'maotai');
查看表字段 desc stu;
查看建表语句 show create table stu;
查询 select user,host from mysql.user;
查看错误日志 show variables like '%error%';
最大连接数(151默认) show variables like "%max_conn%";
在mysql>执行sh命令 system ls /opt
  1. - 查看logbin开关
  2. mysql> show variables like "%log_bin%";
  3. +---------------------------------+---------------------------------------+
  4. | Variable_name | Value |
  5. +---------------------------------+---------------------------------------+
  6. | log_bin | ON |
  7. | log_bin_basename | /usr/local/mysql/data/mysql-bin |
  8. | log_bin_index | /usr/local/mysql/data/mysql-bin.index |
  9. | log_bin_trust_function_creators | OFF |
  10. | log_bin_use_v1_row_events | OFF |
  11. | sql_log_bin | ON |
  12. +---------------------------------+---------------------------------------+
  13. 6 rows in set (0.01 sec)
  14. - 查看日志格式
  15. mysql> show variables like "%format%";
  16. +--------------------------+-------------------+
  17. | Variable_name | Value |
  18. +--------------------------+-------------------+
  19. | binlog_format | STATEMENT |
  20. | date_format | %Y-%m-%d |
  21. | datetime_format | %Y-%m-%d %H:%i:%s |
  22. | default_week_format | 0 |
  23. | innodb_file_format | Antelope |
  24. | innodb_file_format_check | ON |
  25. | innodb_file_format_max | Antelope |
  26. | time_format | %H:%i:%s |
  27. +--------------------------+-------------------+
  28. 8 rows in set (0.00 sec)
  29. - 查看二进制日志
  30. mysql> show binary log;
  31. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'log' at line 1
  32. mysql> show binary logs;
  33. +------------------+-----------+
  34. | Log_name | File_size |
  35. +------------------+-----------+
  36. | mysql-bin.000001 | 120 |
  37. +------------------+-----------+
  38. 1 row in set (0.00 sec)
  39. - 切割日志
  40. mysql> reset master;
  41. Query OK, 0 rows affected (0.09 sec)
  42. mysql> show master status;
  43. +------------------+----------+--------------+------------------+-------------------+
  44. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  45. +------------------+----------+--------------+------------------+-------------------+
  46. | mysql-bin.000001 | 120 | | | |
  47. +------------------+----------+--------------+------------------+-------------------+
  48. 1 row in set (0.00 sec)

[svc]打通mysql主从同步的更多相关文章

  1. zabbix3.0.4监控mysql主从同步

    zabbix3.0.4监控mysql主从同步 1.监控mysql主从同步原理: 执行一个命令 mysql -u zabbix -pzabbix -e 'show slave status\G' 我们在 ...

  2. MySQL主从同步几个文件

    MySQL主从同步:   M锁表 M导出S导入 M解锁 M建同步帐号 S获取点位:产生master.info S开启同步   3306: mysql-bin.0000x mysql-bin.index ...

  3. 监控mysql主从同步状态脚本

    监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...

  4. Linux下MySQL主从同步配置

    Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...

  5. Mysql主从同步(复制)

    目录: mysql主从同步定义      主从同步机制 配置主从同步      配置主服务器      配置从服务器 使用主从同步来备份      使用mysqldump来备份      备份原始文件 ...

  6. MySQL主从同步原理 部署【转】

    一.主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力二.MySQL主从备份原理master 上提供binlog ,slave 通过 I/O线程从 master拿取 bin ...

  7. shell脚本修复MySQL主从同步

    发布:thebaby   来源:net     [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...

  8. nagios 实现Mysql 主从同步状态的监控

    一.系统环境 主机名 IP nagios 192.168.15.111 mysql_s 192.168.15.21 二.操作步骤 2.1 mysql_s端的配置 2.1.1 编写check_mysql ...

  9. mysql 主从同步出问题,重新修复从库 - web架构研究

    mysql 主从同步出问题,重新修复从库 - web架构研究     mysql 主从同步出问题,重新修复从库    0     昨天由于操作失误,在从库上执行一堆sql之后,导致主从同步错误,并且已 ...

随机推荐

  1. BZOJ4992 [Usaco2017 Feb]Why Did the Cow Cross the Road 最短路 SPFA

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4992 题意概括 在一幅n*n的地图上,Amber从左上角走到右下角,每走一步需要花费时间t,每走完 ...

  2. ubuntu卸载opencv并重装opencv3.0.0

    一. 卸载opencv2.4.9: Going to the "build" folder directory of opencv from terminal, and execu ...

  3. window.location方法获取URL

    window.location方法获取URL 统一资源定位符 (Uniform Resource Locator, URL) 完整的URL由这几个部分构成: scheme://host:port/pa ...

  4. bfs-poj3278

    题目链接:http://poj.org/problem?id=3278 题意:农夫原始在N位置上,他的目的是要抓到在K位置上的牛.牛的位置是固定不变的,而农夫的移动是在一条水平线上进行的,移动方式有以 ...

  5. Python3.x使用PyMysql连接MySQL数据库

    Python3.x使用PyMysql连接MySQL数据库 由于Python3.x不向前兼容,导致Python2.x中的很多库在Python3.x中无法使用,例如Mysqldb,我前几天写了一篇博客Py ...

  6. 20172302 《Java软件结构与数据结构》第二周学习总结

    2018年学习总结博客总目录:第一周 第二周 教材学习内容总结 第三章 集合概述-栈 3.1 集合 (1) 集合是一种聚集,组织了其他对象的对象.它定义一张破那个特定的方式,可以访问.管理所包含的对象 ...

  7. Redis集群方案总结

    Redis集群方案总结 Redis集群方案总结Codis其余方案Redis cluster 目前,Redis中目前集群有以下几种方案: 主从复制 哨兵模式 redis cluster 代理 codis ...

  8. git 分支合并冲突

    准备新的feature1分支,继续我们的新分支开发 [root@node1 git]# git checkout -b feature1 D git/LICENSE.txt Switched to a ...

  9. javascript鼠标滚动

    firefox使用DOMMouseScroll,其他浏览器使用mousewheel当滚动时获取wheelDelta值,firefox使用detail:值为下滚3上滚-3,其他浏览器使用wheelDel ...

  10. Android开源项目SlidingMenu学习(二)

    前一篇SlidingMenu学习(一)文章中了解了导入SlidingMenu到我们项目经常出现的问题,下面我们正式学习. 先看一个效果: 看到两幅图片的差别了吗,左边的一栏时可以滑动的,可以隐藏掉,现 ...