centos mysql-5.6.22 主从复制

环境: centos6.5   mysql-5.6.22  master 192.168.3.11

centos6.5   mysql-56.22   slave  192.168.3.150

MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。

为什么使用主从复制?

1、主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作为备份。

2、通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。但是不要同时在主从服务器上进行更新,这样可能引起冲突。

3、使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续处理更新。

MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让主服务器发送二进制日志。主服务器创建一个线程将二进制日志中的内容发送到从服务器。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,从服务器使用此线程读取中继日志并执行日志中包含的更新。SHOW PROCESSLIST语句可以查询在主服务器上和从服务器上发生的关于复制的信息。

默认中继日志使用host_name-relay-bin.nnnnnn形式的文件名,其中host_name是从服务器主机名,nnnnnn是序列号。用连续序列号来创建连续中继日志文件,从000001开始。从服务器跟踪中继日志索引文件来识别目前正使用的中继日志。默认中继日志索引文件名为host_name-relay-bin.index。在默认情况,这些文件在从服务器的数据目录中被创建。中继日志与二进制日志的格式相同,并且可以用mysqlbinlog读取。当SQL线程执行完中继日志中的所有事件后,中继日志将会被自动删除。

从服务器在数据目录中另外创建两个状态文件--master.info和relay-log.info。状态文件保存在硬盘上,从服务器关闭时不会丢失。下次从服务器启动时,读取这些文件以确定它已经从主服务器读取了多少二进制日志,以及处理自己的中继日志的程度。

第一步:安装好mysql,源码安装,或者rpm包安装或者yum安装网络都有说明。

第二步:配置文件修改

1、修改主服务器master:
   #vi /etc/my.cnf
       [mysqld]
       log_bin=mysql_bin   //[必须]启用二进制日志
       server-id=222       //[必须]服务器唯一ID,默认是1,一般取IP最后一段

2、修改从服务器slave:
   #vi /etc/my.cnf
       [mysqld]
       log_bin=mysql_bin   //[必须]启用二进制日志

server_id=226       //[必须]服务器唯一ID,默认是1,一般取IP最后一段

3、重启两台服务器的mysql

service mysqld restart  (使用源码安装,请将support-files/mysql.server复制到/etc/init.d/mysql 并用chkconfig --add mysql 添加)

第三步:在master添加授权账号并授权给slave

#/usr/local/mysql/bin/mysql -u root -p  123456

mysql>GRANT REPLICATION SLAVE ON *.* to ‘rep1‘@‘192.168.3.150‘ identified by ‘123456‘; //一般不用root帐号,192.168.3.150是slave的ip也可以使用%代表所有ip都可以使用

第四步:登录主服务器的mysql,查询master的状态

mysql> show master status\G

*************************** 1. row ***************************

File: mysql_bin.000006

Position: 2187

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化


第五步:配置从服务器Slave

mysql>  CHANGE MASTER TO

-> MASTER_HOST=‘192.168.3.11‘,

-> MASTER_PORT=3306,

-> MASTER_USER=‘rep1‘,

-> MASTER_PASSWORD=‘123456‘,

-> MASTER_LOG_FILE=‘mysql_bin.000006‘,

-> MASTER_LOG_POS=2187;

Query OK, 0 rows affected, 2 warnings (0.05 sec)

第六步:检查从服务器复制功能状态:

mysql> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.3.11

Master_User: rep1

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql_bin.000006

Read_Master_Log_Pos: 2187

Relay_Log_File: lvs-master-relay-bin.000002

Relay_Log_Pos: 1244

Relay_Master_Log_File: mysql_bin.000006

Slave_IO_Running: Yes   //Yes表示连接正常

Slave_SQL_Running: Yes    //Yes表示连接正常

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: 2187

Relay_Log_Space: 1422

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

.......................................

Auto_Position: 0

1 row in set (0.00 sec)

mysql>


第七步 常见错误

1:slave状态 Slave_IO_Running: connecting

                           ping master ip  

                            关闭防火墙  service iptables stop 

                            关闭sentenforce  0

                            检查pos是否一致

                            检查授权用户密码

                            远程链接master mysql    mysql -u rep1 -p  -h  192.168.3.11  显示myql ERROR 1045                              (28000): Access denied for user  (using password: YES) 则删除master密码为空的                               账号delete from user where user=‘‘;  FLUSH PRIVILEGES;//刷新数据库



第八步、从服务器复制时,会在其数据目录中发现文件master.info和HOSTNAME-relay-log.info。从服务器使用这两个文件跟踪已经处理了多少主服务器的二进制日志。


时间: 2024-10-04 04:29:53

centos mysql-5.6.22 主从复制的相关文章

centos 7.0 编译 安装mysql 5.6.22 过程 未完成~~持续

mysql 下载目录/usr/local/srcmysql 解压目录 /usr/local/bin/mysql GitHub https://github.com/mysql/mysql-server mysql官网的安装说明http://dev.mysql.com/doc/refman/5.6/en/source-installation.html 安装mysql必须的要求 CMake make3.75以上 GCC 4.2.1以上 PerlCurses ncurses-devel 最新3.1.

CentOS 6.4下安装MySQL 5.6.22

本文详细介绍在CentOS 6.4下安装MySQL 5.6.22的过程,供需要的朋友学习参考. 一.下载MySQL 安装包 1)http://dev.mysql.com/downloads/mysql/ 打开网址: Select Platform: 选择 Linux-Generic 选择选择 Linux - Generic (glibc 2.5) (x86, 64-bit), RPM   进行下载: linux 下下载: wget  http://cdn.mysql.com/Downloads/

项目实战7—Mysql实现企业级数据库主从复制架构实战

Mysql实现企业级数据库主从复制架构实战 环境背景:公司规模已经形成,用户数据已成为公司的核心命脉,一次老王一不小心把数据库文件删除,通过mysqldump备份策略恢复用了两个小时,在这两小时中,公司业务中断,损失100万,老王做出深刻反省,公司也因此对于数据库的性能和可靠性提出更高要求. 要求对数据库进行改造,使其承载力进行提升,故障修复时间减少,有没有能实现的方案呢? Mysql实现数据库主从复制实战架构及其原理 1.实验架构及其原理 数据库高可用架构分为 主从:一主一从,一主多从,一主从

MySQL 5.7.17主从复制实战(一主多从)

MySQL 5.7.17主从复制实战(一主多从) 主从复制的原理: 分为同步复制和异步复制,实际复制架构中大部分为异步复制. 复制的基本过程如下: 1).Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容: 2).Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave 的IO进程.返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master

centos mysql 实战 第六节课 字符集

centos mysql 实战 第六节课    字符集 一定要研究清楚mysql安装脚本 字符集 乱码数据迁移1. 理解字符集怎么会事2. 不同的字符集进行转换 什么是字符集gbk , utf8 gb2312 latin1 一套符号编码规则 字符串都必须有相应的字符集,除了二进制没有字符集 校验字符集的概念流式传输 多字节latin1 单字节gbk 2字节utf8 3字节校验字符集的概念, 字为单位归类的方法,就是3类xxx_bin 以二进制形式存储区分大小写 SHOW CHARACTER SE

centos mysql 实战 第三节课 MySQL里的对象 mysql体系结构 mysql日志 数据类型

centos mysql  实战  第三节课   MySQL里的对象  mysql体系结构  mysql日志   数据类型 上两节课1. MySQL的安装2. MySQL启动方式 MySQL里的对象 今天第一个: MySQL里的对象 查看当前有那些数据库:show databases; drop database test;truncate table mysql.db; mysql里view当成Table对待了,没有单独的命令能备份视图,只能备份表 information_schema 字典库

mysql-5.7.22主从复制搭建

mysql7.7.22主从复制 本项目是根据真实环境搭建编写出文档,文档中的目录也是根据自己公司环境所创建.公司原来是一台服务器搭建的数据库(5.7.22),由于业务的扩展需要搭建一台从服务器,减轻主服务器的压力.两台服务器的数据库搭建方法是一样的,就是主从配置时候不一样. 一.  系统版本及安装所需要的环境 系统:Centos7.1两台 Master:192.168.161.141 Slave: 192.168.161.140 安装开发工具,如果你源码安装软件就需要安装这个. yum -y g

centos mysql 优化 第二十三节课

centos mysql  优化  第二十三节课 f

centos mysql 优化 第二十一节课

centos mysql  优化  第二十一节课 f

centos mysql 优化 第十九节课

centos mysql  优化  第十九节课 f