mysql5.6搭建主从复制
使用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)
- mysql> grant replication slave on *.* to 'slave'@'1.1.1.2' identified by 'root';
- Query OK, 0 rows affected (0.00 sec)
- 编辑my.cnf配置文件,设置主库server-id=1,定义需要复制的库为test,忽略mysql数据库
- [root@vm-kvm10000-app mysql]# vi /etc/my.cnf
- [mysqld]
- server-id=1
- log-bin=mysql-bin
- binlog_do_db=test
- binlog_ignore_db=mysql
- 重启主库MySQL服务,
- [root@vm-kvm10000-app mysql]# service mysql restart
- Shutting down MySQL.. SUCCESS!
- Starting MySQL. SUCCESS!
- 看一下主库状态,
- mysql> show master status;
- +------------------+----------+--------------+------------------+-------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
- +------------------+----------+--------------+------------------+-------------------+
- | mysql-bin.000002 | 120 | test | mysql | |
- +------------------+----------+--------------+------------------+-------------------+
- 1 row in set (0.00 sec)
- 或者
- mysql> show master status \G
- *************************** 1. row ***************************
- File: mysql-bin.000002
- Position: 120
- Binlog_Do_DB: test
- Binlog_Ignore_DB: mysql
- Executed_Gtid_Set:
- 1 row in set (0.00 sec)
- 从库,编辑my.cnf配置,设置server-id=2,区别于主库,
- [root@vm-kvm10001-app mysql]# vi /etc/my.cnf
- [mysqld]
- server-id=2
- 重启MySQL服务,
- [root@vm-kvm10001-app mysql]# service mysql restart
- Shutting down MySQL.. SUCCESS!
- Starting MySQL. SUCCESS!
- 设置主库信息,
- 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;
- Query OK, 0 rows affected, 2 warnings (0.03 sec)
- 检索从库状态,
- mysql> show slave status \G;
- *************************** 1. row ***************************
- Slave_IO_State:
- Master_Host: 10.221.3.129
- Master_User: slave
- Master_Port: 3306
- Connect_Retry: 10
- Master_Log_File: mysql-bin.000001
- Read_Master_Log_Pos: 120
- Relay_Log_File: vm-kvm11853-app-relay-bin.000001
- Relay_Log_Pos: 4
- Relay_Master_Log_File: mysql-bin.000001
- Slave_IO_Running: No
- Slave_SQL_Running: No
- Replicate_Do_DB:
- Replicate_Ignore_DB:
- Replicate_Do_Table:
- Replicate_Ignore_Table:
- Replicate_Wild_Do_Table:
- Replicate_Wild_Ignore_Table:
- Last_Errno: 0
- Last_Error:
- Skip_Counter: 0
- Exec_Master_Log_Pos: 120
- Relay_Log_Space: 120
- Until_Condition: None
- Until_Log_File:
- Until_Log_Pos: 0
- Master_SSL_Allowed: No
- Master_SSL_CA_File:
- Master_SSL_CA_Path:
- Master_SSL_Cert:
- Master_SSL_Cipher:
- Master_SSL_Key:
- Seconds_Behind_Master: NULL
- Master_SSL_Verify_Server_Cert: No
- Last_IO_Errno: 0
- Last_IO_Error:
- Last_SQL_Errno: 0
- Last_SQL_Error:
- Replicate_Ignore_Server_Ids:
- Master_Server_Id: 0
- Master_UUID:
- Master_Info_File: /var/lib/mysql/master.info
- SQL_Delay: 0
- SQL_Remaining_Delay: NULL
- Slave_SQL_Running_State:
- Master_Retry_Count: 86400
- Master_Bind:
- Last_IO_Error_Timestamp:
- Last_SQL_Error_Timestamp:
- Master_SSL_Crl:
- Master_SSL_Crlpath:
- Retrieved_Gtid_Set:
- Executed_Gtid_Set:
- Auto_Position: 0
- 1 row in set (0.00 sec)
- 其中最重要的就是,这两个参数,要求YES,但此处为NO,
- Slave_IO_Running: No
- Slave_SQL_Running: No
- 检索错误日志,提示无法找见./performance_schema/cond_instances.frm文件,
- [root@vm-kvm10001-app mysql]# vm-kvm10001-app.err
- 2017-08-29 16:10:37 22933 [ERROR] /usr/sbin/mysqld: Can't find file: './performance_schema/cond_instances.frm' (errno: 13 - Permission denied)
- 看一下其目录,发现performance_schema文件夹,是root权限,mysql用户无法访问,因此需要修改一下其权限,
- [root@vm-kvm10001-app mysql]# ls -rlht
- total 109M
- ...
- drwx------ 2 root root 4.0K Aug 29 15:05 performance_schema
- ...
- [root@vm-kvm10001-app mysql]# chown -R mysql:mysql *
- [root@vm-kvm10001-app mysql]# ls -rlht
- total 109M
- ...
- drwx------ 2 mysql mysql 4.0K Aug 29 15:05 performance_schema
- ...
- 重启服务,
- [root@vm-kvm10001-app mysql]# service mysql restart
- Shutting down MySQL.... SUCCESS!
- Starting MySQL. SUCCESS!
- 再看从库状态,
- mysql> show slave status \G
- *************************** 1. row ***************************
- ...
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- ...
- 主库导出数据,用于导入从库,首先需要设置读锁,避免数据不一致,
- mysql> flush tables with read lock;
- mysql> show master logs;
- +------------------+-----------+
- | Log_name | File_size |
- +------------------+-----------+
- | mysql-bin.000001 | 143 |
- | mysql-bin.000002 | 222 |
- | mysql-bin.000003 | 545 |
- +------------------+-----------+
- 3 rows in set (0.00 sec)
- 执行mysqldump将test库,导出test.sql文件,
- [root@vm-kvm10000-app mysql]# mysqldump -uroot -p -B test > test.sql
- 然后解锁表,
- mysql> unlock tables;
- 从库执行导入,
- [root@vm-kvm10001-app mysql]# mysql -uroot -p < test.sql
- 要确保从库,这两个值正确,
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- 此时就完成了主从复制,向主库插入一条记录,
- mysql> INSERT INTO test
- -> (id, name)
- -> VALUES
- -> (1, "a");
- Query OK, 1 rows affected (0.00 sec)
- 从库中可以检索出来,
- mysql> select * from test;
- +-------+--------+
- | id | name |
- +-------+--------+
- | 1 | a |
- +-------+--------+
- 总结:
- 1. MySQL相关文件、文件夹需要的权限,可能会因为不正确,例如需要mysql权限,但却是root,导致数据库异常。
- 2. 主从复制,需要关注从库,这两个参数值,需要均为YES,出现NO,则可以检索错误日志,进一步定位。
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
mysql5.6搭建主从复制的更多相关文章
- 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 ...
- MySQL5.6 Replication主从复制(读写分离) 配置完整版
MySQL5.6 Replication主从复制(读写分离) 配置完整版 MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTI ...
- Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
现在很多朋友想尝试win2008 r2来跑web服务器,跟win2003相比界面差别有点大,有些人可能不太习惯,不过以后是趋势啊,这里简单分享下,方便需要的朋友 准备篇 一.环境说明: 操作系统:Wi ...
- 一次使用innobackupex重新搭建主从复制报错解决方法及注意事项
[环境介绍] 系统环境:CentOS release 6.4 (Final) + Server version: 5.7.18-log MySQL Community Server (GPL) + i ...
- 【MySQL】CentOS下安装及搭建主从复制
CentOS下安装MySQL 1,wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 2,rpm -ivh m ...
- Redis-环境搭建、创建服务、搭建主从复制-Windows版本
一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境 ...
- centos7搭建mysql-5.7.22主从复制
mysql7.7.22主从复制 本项目是根据真实环境搭建编写出文档,文档中的目录也是根据自己公司环境所创建.公司原来是一台服务器搭建的数据库(5.7.22),由于业务的扩展需要搭建一台从服务器,减轻主 ...
- mysql5.7使用gtid模式搭建主从复制架构
一.架构 两台mysql服务器做一主一从,172.28.18.69(主) 172.28.18.78(从) 二.分别编译安装mysql5.7 1.下载mysql5.7.26源码包 [root@serve ...
- mysql5.7基于gtid进行搭建主从复制过程
gtid_mode = onenforce-gtid-consistency = onskip_name_resolve # 去掉域名解析二进制日志必须开启,且格式为ROWserver-id必须配置成 ...
随机推荐
- MFC连接Mysql数据库执行查询和插入
配置环境: include:mysql.h文件 lib:libmysql.lib文件 dll::libmysql.dll文件 连接代码: MYSQL m_sqlCon; MYSQL_RES *m_re ...
- 编写VBA宏生成页面
概述 依据详细设计中表设计,借用excel宏编写VBA生成页面. 特色 高定制.高效率.兼容所有生成要求.不依赖低耦合.任意Sheet适用 缺陷 不支持批量Sheet页生成 VBA源码 Sub lis ...
- selenium+python smtp邮件
#code:utf-8 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIM ...
- Discuz3.3注册程序修改添加记录推荐人账号
Discuz3.3注册入口地址为:member.php?mod=register 一.member.php: 打开之后,代码非常简单. 其中有一句: $mod = !in_array($discuz- ...
- luogu P2015 二叉苹果树
嘟嘟嘟 这应该算一道树形背包吧,虽然我还是分不太清树形背包和树形dp的区别…… 首先dp[i][u][j] 表示在u的前 i 棵子树中,留了 j 条树枝时最大的苹果数量,而且根据题目描述,这些留下的树 ...
- Go并发与.Net TAP
Go package main import "fmt" func sum(arrays []int, ch chan int) { fmt.Println(arrays) sum ...
- 3.C++和C混合编程
最近经常看到头文件中有 #ifdef __cplusplus extern "C" { #endif ....... #ifdef __cplusplus } #endif 这样的 ...
- 获取主机ip地址
直接访问http://icanhazip.com
- 在hyper-v中安装centos后配置网络
/etc/sysconfig/network-scripts vi ifcfg-eth0 改为以下配置 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no ...
- C# 处理json字符串中image数据(byte)Base64
static void Main(string[] args) { string factString = "中华人民共和国"; byte[] myByte; str ...