资讯专栏INFORMATION COLUMN

mysql主从复制

KnewOne / 1826人阅读

摘要:一读写分离主从复制至少两台数据库服务器,可以分别设置主服务器和从服务器,对主服务器的任何操作都会同步到从服务器上。

一、读写分离(主从复制)

至少两台数据库服务器,可以分别设置主服务器和从服务器,对主服务器的任何操作都会同步到从服务器上。 主要作用:分担压力,备份数据

实现原理

mysql中有一种日志,叫做bin日志(二进制日志),会记录下所有修改过数据库的sql语句。主从复制的原理实际是多台服务器都开启bin日志,然后主服务器会把执行过的sql语句记录到bin日志中,之后从服务器读取该日志,在从服务器再把bin日志中记录的sql语句同样的执行一遍。这样从服务器上的数据就和主服务器相同了。

首先登陆主服务器需要分配一个账户给从服务器 添加账号(用户)命令如下:

//授权账户给xiaohei
grant  all  on   *.*   to ‘xiaohei’@’%’  identified  by ‘1234’

查看是否分配成功可以查看user表

select * from mysql.user  

如果需要删除 命令如下:

drop user "xiaohei"@"%"  

都知道mysql是通过日志来实现同步的 那么如何区操作日志呢??

 //首先需要配置my.conf 的log-bin日志文件 可以配置具体的路径
   log-bin=d:/log.bin   
//配置data-dir可以配置具体的数据存放的位置 
datadir="f:/log"

//生成新的日志文件 flush log
//清空所用的日志文件 reset master
//查看最后一个的日志文件 show master status

那么如何查看记录在日志文件的内容呢??

mysqlbinlog --no-defaults "d:/log.bin"

搭建主从服务器:

搭建主服务器:
在my.conf中设置 server-id =1 ,log-bin已经进行了配置了

账户的授权:

grant replication slave on *.* to "slave"@"%" identified by "1234";

记录主服务器最新的二进制的名称和位置

show master status;

注意:此时,就禁止对主服务器执行增删改的操作,一直到从服务器配置成功。

搭建从服务器

(1)开启二进制日志。

(2)要设置一个server_id 该值不能和主服务器的相同。

登陆从服务器 并且停止

stop slave   

配置语法:

change master to
master_host=”主服务器的ip地址”,master_user=”授权用户的名称”,master_password=”授权用户的密码”,master_log_file=”二进制日志文件的名称”,master_log_pos=记录的pos位置;

开启从服务器 执行start slave

查看是否配置成功
show slave status

Slave_IO_Running:Yes 此进程负责从服务器从主服务器上读取binlog 日志,并写入从服务器上的中继日志。
Slave_SQL_Running:Yes 此进程负责读取并且执行中继日志中的binlog日志,
注:以上两个都为yes则表明成功,只要其中一个进程的状态是no,则表示复制进程停止,错误原因可以从”last_error”字段的值中看到。、

读写分离的实现
  "DB_RW_SEPARATE"=>true,//支持读写分离 
  "DB_MASTER_NUM"         =>  1, // 读写分离后 主服务器数量
  "DB_SLAVE_NO"      =>  "", // 指定从服务器序号,不填,查询时随机连接从服务器

具体的步骤:
(1)通过mysql授权账号,
注意:授权的账号,是给php代码连接的。
主服务器:192.168.12.253的主机授权账号如下:

从服务器:192.168.12.252的主机授权账号如下:

(2)步骤TP框架里面配置文件

(3)在TP里面,测试读写分离的配置,

通过测试发现,执行M()->query()时,是连接从服务器,执行 M()->execute()是连接主服务器。

视图

视图有两个好处:

一是可以简化sql,组建数据到视图 减少sql的查看
二是 可以权限控制 显示必要的数据

视图与表的关系
(1)视图是表的查询结果,自然表的数据改变了,影响视图的结果。
(2)如果向视图里面,添加数据,是否会影响到表里面的数据呢?
insert into it_goods_v1(goods_name,shop_price,goods_number) values("包菜",210,100);

注意:视图的数据与表的数据一一对应时,可以修改视图里面的数据,如果不是一一对应的关系,不能修改,比如下图所示,想要修改平均价格。

(3)对于视图insert还应注意,视图必须包含表中没有默认值的列。
理解:

create table it_user(
    id int primary key auto_increment,
    name varchar(32) not null,
    age decimal(9,2) not null,
    email varchar(32) not null
)engine myisam charset utf8;

注意:在实际的开发中,没有对视图进行增删改的需求,创建视图,就是查询的。

几个mysql时间函数

unix_timestamp() //时间戳
from_unixtime(unix_timestamp()) //转换为日期格式
curdate() //今天的日期
//取出某个时间段的时间
date_sub(时间日期时间,interval 数字 时间单位)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/47026.html

相关文章

  • MySQL 主从复制原理

    摘要:引言主从复制原理是相当基础的知识,很久没有接触过主从复制了,因为我这边负责的业务暂时没用使用主从复制。在与之间实现整个主从复制的过程是由三个线程参与完成的。来自帮助文档复制过程服务器上执行,开启主从复制开关。 引言 MySQL 主从复制原理是相当基础的知识,很久没有接触过 MySQL 主从复制了,因为我这边负责的业务暂时没用使用 MySQL 主从复制。既然有些忘记了,现在我重新复习记录...

    LinkedME2016 评论0 收藏0
  • MySQL5.7 主从复制配置

    摘要:每一个主从复制的连接,都有三个线程。上创建一个测试数据库四主从复制创建授权用户创建用户,指定该用户只能在主库上使用密码登录为用户赋予权限。 一、主从复制原理 MySQL 主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个 log du...

    wenhai.he 评论0 收藏0
  • MySQL5.7 主从复制配置

    摘要:每一个主从复制的连接,都有三个线程。上创建一个测试数据库四主从复制创建授权用户创建用户,指定该用户只能在主库上使用密码登录为用户赋予权限。 一、主从复制原理 MySQL 主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个 log du...

    rainyang 评论0 收藏0
  • MySQL主从复制原理探索

    摘要:主从复制的原理是什么,主库中保存更新事件日志的二进制文件。对于每一个即将发送给从库的事件,输出线程会将其锁住。在从库里,当复制开始的时候,从库就会创建两个线程进行处理从库线程。可以知道,对于每一个主从复制的连接,都有三个线程。 上一篇文章里面,讲到了遇到mysql主从延迟的坑,对于这次的坑多说两句,以前也看过这样的例子,也知道不能够写完之后马上更新,但是真正开发的时候还是没有注意到这一...

    Baaaan 评论0 收藏0
  • 简单五步教你搭建MySQL主从复制

    摘要:环境主机从机环境目标实现主机到从机基于的主从复制目前提供两种方式主从复制基于我们此篇就是基于的主从复制基于第步下载并分别安装到主机和从机,网上有很多例子。第步在主机和从机上分别拷贝配置文件到下。可以创建库或者表查看同步情况。 环境 主机:172.17.0.2从机:172.17.0.3环境:CentOS7MySQL:5.6.38目标:实现主机172.17.0.2到从机172.17.0.3...

    Vixb 评论0 收藏0
  • 简单五步教你搭建MySQL主从复制

    摘要:环境主机从机环境目标实现主机到从机基于的主从复制目前提供两种方式主从复制基于我们此篇就是基于的主从复制基于第步下载并分别安装到主机和从机,网上有很多例子。第步在主机和从机上分别拷贝配置文件到下。可以创建库或者表查看同步情况。 环境 主机:172.17.0.2从机:172.17.0.3环境:CentOS7MySQL:5.6.38目标:实现主机172.17.0.2到从机172.17.0.3...

    cyqian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<