使用MySQL 5.6,搭建主从复制。关于5.6的安装,可以参考《MySQL 5.6 rpm安装方法和碰见的问题》。

 

主库创建slave用户,设置复制权限,

mysql> create user 'slave'@'1.1.1.2' identified by 'root';

Query OK, 0 rows affected (0.00 sec)

    1. mysql> grant replication slave on *.* to 'slave'@'1.1.1.2' identified by 'root';
    2. Query OK, 0 rows affected (0.00 sec)

 

  1. 编辑my.cnf配置文件,设置主库server-id=1,定义需要复制的库为test,忽略mysql数据库
  1. [root@vm-kvm10000-app mysql]# vi /etc/my.cnf
  2. [mysqld]
  3. server-id=1
  4. log-bin=mysql-bin
  5. binlog_do_db=test
  6. binlog_ignore_db=mysql

 

  1. 重启主库MySQL服务,
  1. [root@vm-kvm10000-app mysql]# service mysql restart
  2. Shutting down MySQL.. SUCCESS!
  3. Starting MySQL. SUCCESS!

 

  1. 看一下主库状态,
  1. mysql> show master status;
  2. +------------------+----------+--------------+------------------+-------------------+
  3. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  4. +------------------+----------+--------------+------------------+-------------------+
  5. | mysql-bin.000002 |      120 | test         | mysql            |                   |
  6. +------------------+----------+--------------+------------------+-------------------+
  7. 1 row in set (0.00 sec)

 

  1. 或者
  2. mysql> show master status \G
  3. *************************** 1. row ***************************
  4. File: mysql-bin.000002
  5. Position: 120
  6. Binlog_Do_DB: test
  7. Binlog_Ignore_DB: mysql
  8. Executed_Gtid_Set:
  9. 1 row in set (0.00 sec)

 

  1. 从库,编辑my.cnf配置,设置server-id=2,区别于主库,
  1. [root@vm-kvm10001-app mysql]# vi /etc/my.cnf
  2. [mysqld]
  3. server-id=2

 

  1. 重启MySQL服务,
  1. [root@vm-kvm10001-app mysql]# service mysql restart
  2. Shutting down MySQL.. SUCCESS!
  3. Starting MySQL. SUCCESS!

 

  1. 设置主库信息,
  1. mysql> change master to master_host='1.1.1.1',master_user='slave',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=120,master_connect_retry=10;
  2. Query OK, 0 rows affected, 2 warnings (0.03 sec)

 

  1. 检索从库状态,
  1. mysql> show slave status \G;
  2. *************************** 1. row ***************************
  3. Slave_IO_State:
  4. Master_Host: 10.221.3.129
  5. Master_User: slave
  6. Master_Port: 3306
  7. Connect_Retry: 10
  8. Master_Log_File: mysql-bin.000001
  9. Read_Master_Log_Pos: 120
  10. Relay_Log_File: vm-kvm11853-app-relay-bin.000001
  11. Relay_Log_Pos: 4
  12. Relay_Master_Log_File: mysql-bin.000001
  13. Slave_IO_Running: No
  14. Slave_SQL_Running: No
  15. Replicate_Do_DB:
  16. Replicate_Ignore_DB:
  17. Replicate_Do_Table:
  18. Replicate_Ignore_Table:
  19. Replicate_Wild_Do_Table:
  20. Replicate_Wild_Ignore_Table:
  21. Last_Errno: 0
  22. Last_Error:
  23. Skip_Counter: 0
  24. Exec_Master_Log_Pos: 120
  25. Relay_Log_Space: 120
  26. Until_Condition: None
  27. Until_Log_File:
  28. Until_Log_Pos: 0
  29. Master_SSL_Allowed: No
  30. Master_SSL_CA_File:
  31. Master_SSL_CA_Path:
  32. Master_SSL_Cert:
  33. Master_SSL_Cipher:
  34. Master_SSL_Key:
  35. Seconds_Behind_Master: NULL
  36. Master_SSL_Verify_Server_Cert: No
  37. Last_IO_Errno: 0
  38. Last_IO_Error:
  39. Last_SQL_Errno: 0
  40. Last_SQL_Error:
  41. Replicate_Ignore_Server_Ids:
  42. Master_Server_Id: 0
  43. Master_UUID:
  44. Master_Info_File: /var/lib/mysql/master.info
  45. SQL_Delay: 0
  46. SQL_Remaining_Delay: NULL
  47. Slave_SQL_Running_State:
  48. Master_Retry_Count: 86400
  49. Master_Bind:
  50. Last_IO_Error_Timestamp:
  51. Last_SQL_Error_Timestamp:
  52. Master_SSL_Crl:
  53. Master_SSL_Crlpath:
  54. Retrieved_Gtid_Set:
  55. Executed_Gtid_Set:
  56. Auto_Position: 0
  57. 1 row in set (0.00 sec)

 

  1. 其中最重要的就是,这两个参数,要求YES,但此处为NO,
  1. Slave_IO_Running: No
  2. Slave_SQL_Running: No

 

  1. 检索错误日志,提示无法找见./performance_schema/cond_instances.frm文件,
  1. [root@vm-kvm10001-app mysql]# vm-kvm10001-app.err
  2. 2017-08-29 16:10:37 22933 [ERROR] /usr/sbin/mysqld: Can't find file: './performance_schema/cond_instances.frm' (errno: 13 - Permission denied)

 

  1. 看一下其目录,发现performance_schema文件夹,是root权限,mysql用户无法访问,因此需要修改一下其权限,
  1. [root@vm-kvm10001-app mysql]# ls -rlht
  2. total 109M
  3. ...
  4. drwx------ 2 root  root  4.0K Aug 29 15:05 performance_schema
  5. ...

 

  1. [root@vm-kvm10001-app mysql]# chown -R mysql:mysql *

 

  1. [root@vm-kvm10001-app mysql]# ls -rlht
  2. total 109M
  3. ...
  4. drwx------ 2 mysql mysql 4.0K Aug 29 15:05 performance_schema
  1. ...

 

  1. 重启服务,
  1. [root@vm-kvm10001-app mysql]# service mysql restart
  2. Shutting down MySQL.... SUCCESS!
  3. Starting MySQL. SUCCESS!

 

  1. 再看从库状态,
  1. mysql> show slave status \G
  2. *************************** 1. row ***************************
  3. ...
  4. Slave_IO_Running: Yes
  5. Slave_SQL_Running: Yes
  6. ...

 

  1. 主库导出数据,用于导入从库,首先需要设置读锁,避免数据不一致,
  1. mysql> flush tables with read lock;

 

  1. mysql> show master logs;
  2. +------------------+-----------+
  3. | Log_name         | File_size |
  4. +------------------+-----------+
  5. | mysql-bin.000001 |       143 |
  6. | mysql-bin.000002 |       222 |
  7. | mysql-bin.000003 |       545 |
  8. +------------------+-----------+
  9. 3 rows in set (0.00 sec)

 

  1. 执行mysqldump将test库,导出test.sql文件,
  1. [root@vm-kvm10000-app mysql]# mysqldump -uroot -p -B test > test.sql

 

  1. 然后解锁表,
  1. mysql> unlock tables;

 

  1. 从库执行导入,
  1. [root@vm-kvm10001-app mysql]# mysql -uroot -p < test.sql

 

  1. 要确保从库,这两个值正确,
  1. Slave_IO_Running: Yes    
  2. Slave_SQL_Running: Yes

 

  1. 此时就完成了主从复制,向主库插入一条记录,
  1. mysql> INSERT INTO test
  2.     -> (id, name)
  3.     -> VALUES
  4.     -> (1, "a");
  5. Query OK, 1 rows affected (0.00 sec)

 

  1. 从库中可以检索出来,
  1. mysql> select * from test;
  2. +-------+--------+
  3. |     id    |  name  |
  4. +-------+--------+
  5. |      1    |     a      |
  6. +-------+--------+

 

 

  1. 总结:
  2. 1. MySQL相关文件、文件夹需要的权限,可能会因为不正确,例如需要mysql权限,但却是root,导致数据库异常。
  3. 2. 主从复制,需要关注从库,这两个参数值,需要均为YES,出现NO,则可以检索错误日志,进一步定位。
  4. Slave_IO_Running: Yes
  5. Slave_SQL_Running: Yes

mysql5.6搭建主从复制的更多相关文章

  1. Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14(我用的php 5.3.10安装版) MySQL版本:MySQL5.5.25 ...

  2. MySQL5.6 Replication主从复制(读写分离) 配置完整版

    MySQL5.6 Replication主从复制(读写分离) 配置完整版 MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTI ...

  3. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程

    现在很多朋友想尝试win2008 r2来跑web服务器,跟win2003相比界面差别有点大,有些人可能不太习惯,不过以后是趋势啊,这里简单分享下,方便需要的朋友 准备篇 一.环境说明: 操作系统:Wi ...

  4. 一次使用innobackupex重新搭建主从复制报错解决方法及注意事项

    [环境介绍] 系统环境:CentOS release 6.4 (Final) + Server version: 5.7.18-log MySQL Community Server (GPL) + i ...

  5. 【MySQL】CentOS下安装及搭建主从复制

    CentOS下安装MySQL 1,wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 2,rpm -ivh m ...

  6. Redis-环境搭建、创建服务、搭建主从复制-Windows版本

    一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境 ...

  7. centos7搭建mysql-5.7.22主从复制

    mysql7.7.22主从复制 本项目是根据真实环境搭建编写出文档,文档中的目录也是根据自己公司环境所创建.公司原来是一台服务器搭建的数据库(5.7.22),由于业务的扩展需要搭建一台从服务器,减轻主 ...

  8. mysql5.7使用gtid模式搭建主从复制架构

    一.架构 两台mysql服务器做一主一从,172.28.18.69(主) 172.28.18.78(从) 二.分别编译安装mysql5.7 1.下载mysql5.7.26源码包 [root@serve ...

  9. mysql5.7基于gtid进行搭建主从复制过程

    gtid_mode = onenforce-gtid-consistency = onskip_name_resolve # 去掉域名解析二进制日志必须开启,且格式为ROWserver-id必须配置成 ...

随机推荐

  1. MapReduce Design Patterns(chapter 1)(一)

    Chapter 1.Design Patterns and MapReduce MapReduce 是一种运行于成百上千台机器上的处理数据的框架,目前被google,Hadoop等多家公司或社区广泛使 ...

  2. August 02nd 2017 Week 31st Wednesday

    Love means never having to say you are sorry. 爱就是永远不必说对不起. If there is ture love, you will never do ...

  3. Linux命令--压缩解压(简化版)

    Linux tar.gz.tar.bz2.zip 等解压缩.压缩命令详解(简化版) Linux 常用的压缩与解压缩命令有:tar.gzip.gunzip.bzip2.bunzip2.compress ...

  4. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析

    题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATE EXPORTING IT_PIINSTRUCTIONVALUE = IT_PIINST ...

  5. 大屏FAQ

    1. 大屏可以分为哪几类?帆软有哪些大屏硬件合作商?编辑 拼接屏:通常由单个46-55寸的液晶显示屏组成屏幕墙,存在拼缝,借助矩阵.屏控系统来进行信号的输入与输出控制,可以实现屏幕墙上多个屏幕的组合. ...

  6. yii2.0 rules 规则中场景验证字段

    除了app场景以外的其他场景都验证uid字段['uid', 'required','except'=>'app', 'message' => '参数错误'], 只有app场景验证uid字段 ...

  7. virtualbox+vagrant学习-5-Boxes-2-Box Versioning

    Box Versioning 从Vagrant 1.5版本开始, box支持版本控制.这允许创建box的人将更新推送到box中,使用box的人有一个简单的工作流,用于检查更新.更新box以及查看发生了 ...

  8. 20165302 预备作业3 Linux安装及学习

    linux系统安装 我在安装VirtualBox时出现了一些小问题,如图 我的电脑只能设置32-bit的Ubuntu版本,但教程上说要选用64-bit的,我通过百度查询得知要进行BIOS设置,设置好后 ...

  9. 如何在ubuntu中安装CP-ABE

    cpabe依赖pbc,pbc依赖gmp,gmp依赖M4.bison.flex,所以先安装后面的 安装m4 $   sudo apt-get install m4 安装 flex 安装 bison 1 ...

  10. Linux系统的环境变量$PATH

    $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 修改$PATH的方法有很多,比如: export PA ...