快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

轻松搭建MySQL主从复制、读写分离双机热备)

请联系QQ:1793040 索取软件

主-从复制: mysql数据库当数量太大时,查询数据非常困难。无论优化如何造成瓶颈,我们都需要添加服务器设备来实现分布式数据库并实现多机热备份。要了解主从数据库服务器版本的要求,主从mysql的安装和运行版本必须一致。因此,我们使用mysql附带的REPLICATION来实现mysql多机热备份的功能。 mysql版本为5.7,用于演示。 读写分离: 在右边数据库读取操作和写入操作是分开的,并且读取和写入压力在多个服务器之间共享,通常在读取远大于写入的情况下使用。读写分离的基本原理是让主数据库处理事务的添加,修改和删除操作(INSERT,UPDATE,DELETE),并处理数据库中的SELECT查询操作。数据库复制用于将事务操作引起的更改同步到集群中的辅助数据库。当有更多数据时,将对数据库进行大量读取和写入。只有一个写作库,并且可以有多个阅读库。主从复制负责主库和多个读取库之间的数据同步。

我们在上一章中进行了讨论,然后在Laravel中配置读写分离和负载平衡,那么本节需要完成一个小问题,即mysql的主从复制,如果没有主从复制,数据将存在一些问题,因此本节还将分享最重要的内容,供大家学习。

配置环境

操作系统:两个CentOS 7.6 Linux系统(虚拟机)

数据库版本:MySQL 5.7

主服务器IP:192.168.1.100

从属服务器IP:192.168.1.101

安装Mysql数据库(另一篇文章将在稍后发布)mysql安装教程)

我们现在将简单地安装mysql,新手将按照以下步骤进行操作:

1,首先检查系统是否已安装mysql

[root @本地主机] #yum列表已安装mysql *

[root @ local host] #rpm –qa | grep mysql *

2.检查是否存在安装包

[root @ localhost ] #yum list mysql *

3.安装mysql客户端

[root @ localhost] #yum install mysql

4.安装mysql服务器

[root @ localhost] #yum install mysql-server

[root @ localhost] #yum install mysql-devel

5.打开端口

vi/etc/sysconfig/iptables

-A INPUT-p tcp-m tcp –dport 3306-j ACCEPT

6.重新启动防火墙

systemctl重新启动iptables.service-重新启动防火墙systemctl停止iptables.service-关闭防火墙

配置主数据库

1.修改数据库配置文件

[root @ localhost]#vi/etc/my.cnf

更改配置文件

[mysqld]

#打开二进制Log

log-bin = mysql-bin

#标识唯一ID(必填),通常使用ip的最后一位

server-id = 100

#不同步的数据库,可以设置多个

binlog-ignore-db = information_schema

binlog-ignore-db = performance_schema

binlog-ignore-db = mysql#指定要同步的数据库(与从属服务器匹配),可以设置多个

binlog-do-db = test

注意:日志的存储容量设置大小会根据实际情况进行修改服务器资源的情况。

2,重新启动数据库服务(mysqld)

服务mysqld重新启动

3.登录到MySQL数据库,并允许从库中获取主库日志

[root @ localhost]#mysql-u root-p \ quot;您的密码”

注意:首次登录无需输入root密码。输入它。

输入后,请进行以下配置:

#从库中授予Put权限

mysql \ gt;授予文件*。 * TO” repl” @” 192.168.1.101″由” repl password”标识; #创建用户

mysql \ gt;授予复制从属*。 * TO” repl” @” 192.168.0.101″由” repl password”标识; #修改用户权限

mysql \ gt;从mysql.user中选择主机,用户,密码; #检查修改是否成功权限

4.重新启动MySQL服务,登录到MySQL,然后查看主要数据库信息

[root @ localhost]#服务mysqld restart#重新启动mysql服务

[root @ localhost]#mysql-u root-p #Login

mysql mysql \ gt;显示主人身份; #查看主状态

大致显示以下内容

注意:如果此步骤始终为空设置(0.00秒),则表示先前的my.cnf配置不正确,请返回并重试检查配置步骤。

(从)数据库中的配置

1.修改从属库的数据库配置文件

[root @ localhost]#vi/etc/my.cnf

修改内容为

#开启二进制日志记录

log-bin = mysql-bin

服务器ID = 101

binlog-忽略-db = information_schema

binlog-ignore-db = performance_schema

binlog-ignore-db = mysql

#与主库配置保持一致

copy-do-db = test

复制-忽略-数据库= mysql

log-slave-updates slave-skip-errors =所有

slave-net-timeout = 60

2.重新启动MySQL服务并登录到MySQL

[root @ localhost] #服务mysqld重新启动

[root @ localhost]#mysql-u root-p \ quot;您的密码”

并进行以下更改:

#关闭

从站mysql \ gt;停止奴隶;

#设置连接主库信息

mysql \\ gt;将master更改为master_host =” 192.168.1.100″,master_user =” repl”,master_password =” repl password”,master_log_file =” mysql-bin.000007″,master_log_pos = 120;

#打开

从属mysql \ gt;启动奴隶;

注意:上面的master_log_file是配置主字段时的文件,master_log_pos是主配置中的位置字段。必须存在一对一的对应关系。

3.查看从属库的状态

mysql \ gt;显示从站状态\\\\ G;

以下信息:

******************** ***** 1.行************ ************* Slave_IO_State:等待主机发送事件

Master_Host:192.168.1.100

Master_User:根

Master_Port:3306

Connect_Retry:60

Master_Log_File:mysql-bin.000007

Read_Master_Log_Pos:120

Relay_Log_File:localhost-relay-bin。 000007

Relay_Log_Pos:520

Relay_Master_Log_File:mysql-bin.000007

Slave_IO_Running:是//显示为成功

Slave_SQL_Running:是//为成功显示是,如果否,则通常不会启动master Replicate_Do_DB:test

Replicate_Ignore_DB:mysql//上面是配置文件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:357

Relay_Log_Space:697

直到条件:无

直到_日志文件:

直到_Log_Pos:0

Master_SSL_Allowed:否

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master:0

Master_SSL_Verify_Server_Cert:否

Last_IO_Errno:0

Last_IO_Error://如果为否,则会在此处显示错误消息

Last_SQL_Errno:0

Last_SQL_错误:Replicate_Ignore_Server_Ids:

Master_Server_Id:2

Master_UUID:be0a41c0-2b40-11e8-b791-000c29267b6a Master_Info_File:/usr/local/mysql/data/master.info

SQL_Delay:0

SQL_Remaining_Delay:NULL

Slave_SQL_Running_State:从属已读取所有中继日志;

等待从属I/O线程对其进行更新

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:设置01行(0.00秒)

此时,将配置整个过程。现在,您可以在主服务器上创建一个表,然后在从属服务器上查询新创建的表以查看它是否存在。

运行测试

1.关于主数据和从数据在添加,删除和修改检查方面的不一致: p>

原因: delete语句确实在主库的日志箱中执行,但是没有删除从库日志中的语句。

解决:使用use database选择需要在其中操作的数据库当前的数据库体系结构,然后删除,OK同步成功。

2.如何查询binlog主从日志

查看所有binlog文件

mysql \ gt;显示二进制日志;

#检查binlog是否已打开且NO是否已打开

mysql \ gt;显示类似” log_bin%”的变量;

#详细信息

mysql \ gt;显示像” binlog%”这样的变量;

#查看binlog日志

mysql \ gt ;在” mysql-bin.000007″中显示binlog事件;

#或使用

mysqlbinlog,如果错误是报告,使用–no-defaults(使用完整路径)

[root @ localhost]#/usr/local/mysql/bin/mysqlbinlog–no-defaults/usr/local/mysql/data/mysql-bin.000019

3.手动清理主日,最好关闭日志,在/etc/my.cnf

#手动刷新日志

mysql \ gt;显示主人身份;

#删除所有

mysql \ gt;重置从站; #或休息主人;

#删除MySQL-bin.004

mysql \ gt;将主日志清除到” MySQL-bin.004″;

4.基本命令

mysql \ gt;显示主人身份; #查看主服务器的状态

mysql \ gt;显示从站状态\\\\ G; #查看从站的状态

mysql \ gt;显示流程清单; #查看mysql进程状态信息

mysql \ gt;显示主日志; #查看主服务器的日志

mysql \ gt;重置从服务器;#(谨慎使用,清除日志还将清除从服务器配置信息)

有关更多信息,请注意公共帐户(Laravel技术社区) )

相关推荐

 
QQ在线咨询
售前咨询热线
QQ1793040