使用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. [翻译] HTKDragAndDropCollectionViewLayout

    HTKDragAndDropCollectionViewLayout Custom UICollectionViewLayout that works together with a custom U ...

  2. Android 手机 黑域

    黒域地址下载: http://pan.baidu.com/s/1bDYerc 连接手机,选择USB使用方式为“用作MIDI设备“ 0. (手机) 打开黑域,阅读向导1. (手机) 打开黑域,按屏幕提示 ...

  3. Linux常用基本命令大全

    1 一般情况下,自己安装linux系统都会选择简易版,这里面少很多命令,所以需要安装其他的包        yum install openssh-clients   安装scp的软件包 2 把当前一 ...

  4. August 20th 2017 Week 34th Sunday

    Life is not a race, but a journey to be savored each step of the way. 生活不是一场赛跑,而是每一步都应该细细品尝的人生旅程. No ...

  5. ZT fcntl设置FD_CLOEXEC标志作用

    fcntl设置FD_CLOEXEC标志作用 分类: C/C++ linux 2011-11-02 22:11 3217人阅读 评论(0) 收藏 举报 bufferexegccnullfile 通过fc ...

  6. scala当中的文件操作和网络请求

    1.读取文件当中每一行的数据 def main(args: Array[String]): Unit = { //注意文件的编码格式,如果编码格式不对,那么读取报错 val file: Buffere ...

  7. scala基础入门

    1.scala当中申明值和变量 scala当中的变量申明可以使用两种方式,第一种使用val来申明变量.第二种使用var来申明变量. 申明变量语法 val/var 变量名 [:变量类型] = 变量值 其 ...

  8. 【转】深入浅出 iOS 之生命周期

    [iOS]深入浅出 iOS 之生命周期 深入浅出 iOS 之生命周期  http://blog.csdn.net/kesalin/article/details/6691766 罗朝辉(http:// ...

  9. Angular不同版本对应的Bootstrap组件

    AngularJS 1.x版本对应的 bootstrap组件库是ui-bootstrap; http://www.cnblogs.com/pilixiami/p/5597634.html Angula ...

  10. URAL-1019 Line Painting----暴力或线段树

    题目链接: https://cn.vjudge.net/problem/URAL-1019 题目大意: 一个0~1e9的区间,初始都是白的,现进行N次操作,每次将一段区间图上一中颜色.最后问说连续最长 ...