zoukankan      html  css  js  c++  java
  • 20150410--Lnmp+Nginx-01

    image

    目录

    一、什么是主从复制 1

    二、实现原理 1

    三、用户授权, 2

    1、添加一个用户,给用户授权 2

    2、如果删除一个用户 3

    四、log-bin日志 3

    1、如何开启log-bin日志 3

    2、如何 查看log-bin日志里面的内容。 4

    3log-bin日志相关的一些命令操作 5

    4、使用bin-log日志完成一个案例,恢复数据的一个案例 6

    五、主从配置 8

    1、配置主服务器: 8

    2、配置从服务器 9

    3、如何撤销从服务器 10

    六、读写分离实现 10

    一、什么是主从复制

    至少两台数据库服务器,可以分别设置主服务器和从服务器,对主服务器的任何操作都会同步到从服务器上

    wps26E4.tmp

    二、实现原理

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

    wps2704.tmp

    实现的技术是:用户的授权,和log-bin日志的开启。

    三、用户授权,

    1、添加一个用户,给用户授权

    查看当前数据库下面的用户情况。

    wps2705.tmp

    grant 权限名称(select update delete) on 数据库名.表名 to ‘用户名’@’主机’ identified by 密码

    wps2716.tmp

    例如:说明授权的用户xiaolong只能在192.168.10.120的主机上面登录,只对user库user表执行select update delete操作。

    grant  select update delete on user.user to 'xiallong'@'192.168.10.120'  identified by '12345'

    2、如果删除一个用户

    wps2726.tmp

    drop  user ‘用户名’@’主机’

    wps2727.tmp

    四、log-bin日志

    1、如何开启log-bin日志

    打开mysql.ini的配置文件

    wps2738.tmpwps2739.tmpwps2759.tmp

    创建的log-bin日志文件。

    wps276A.tmp

    2、如何 查看log-bin日志里面的内容。

    使用一个命令,

    mysqlbinlog  --no-defaults 日志的文件名及路径

    wps277B.tmp

    wps27BA.tmp

    log-bin记录sql语句的格式位置

    wps27CB.tmp

    3、log-bin日志相关的一些命令操作

    flush logs 产生一个新的log-bin日志

    reset master :清空以前的log-bin日志,并产生一个新的log-bin日志

    show master status; 查看最新的一个log-bin日志,包括最新的pos位置。

    wps27DB.tmp

    4、使用bin-log日志完成一个案例,恢复数据的一个案例

    步骤:

    (1)新建一张表

    create table nihao(id int);

    (2)flush logs 产生一个新的log-bin日志文件

    insert into nihao values(1000)

    insert into nihao values(2000)

    insert into nihao values(3000)

    wps27DC.tmp(3)flush logs产生一个新的log-bin日志文件。

    (4)delete from nihao

    wps27ED.tmp(5)要求恢复数据

    wps27EE.tmp

    比如一个家公司,在上午9:00备份了一次数据。到9:30时,由于员工的误操作,则把所有的数据都给删除了。要求要恢复数据到9:30.

    比如如下:要求恢复数据

    wps27FF.tmp

    思路:打开log-bin日志文件,进行分析。查找insert语句的pos位置。根据pos位置来恢复数据

    使用如下的参数

    --start-pos=”开始的pos点”

    --stop-pos=’结束的pos点’

    wps280F.tmp

    wps2810.tmpwps2811.tmpwps2822.tmpwps2823.tmpwps2833.tmp

    五、主从配置

    1、配置主服务器:

    (1)主和从服务器都要开启log-bin日志,每台服务器设置一个唯一的server-id的值。并重启服务器。

    wps2844.tmp

    (2)要给从服务器授权一个用户,该用户授予复制权限。

    grant replication slave on *.*  to ‘xiaoming’@’%’ identified by ‘12345’

    wps2845.tmp

    (3)要查看主服务器里面log-bin日志的名字和pos位置。(停止对主服务器的操作)

    show master status;

    wps2856.tmp

    2、配置从服务器

    wps2876.tmp

    (1)执行stop slave停止从服务器:

    (2)具体的配置:

    change master to master_host=’主服务器的ip’,master_user=’授权的用户名’,master_password=”授权的密码”,master_log_file=’log-bin日志文件的名称’,master_log_pos=pos位置;

    wps2878.tmp

    (3)开启从服务器

    start slave

    (4)查看从服务器的状态:

    show slave status;

    wps2897.tmp

    Slave_IO_Running:Yes

    此进程负责从服务器从主服务器上读取binlog 日志,并写入从服务器上的中继日志。

    Slave_SQL_Running:Yes

    此进程负责读取并且执行中继日志中的binlog日志,

    注:以上两个都为yes则表明成功,只要其中一个进程的状态是no,则表示复制进程停止,错误原因可以从”last_error”字段的值中看到。

    3、如何撤销从服务器

    (1)stop slave

    (2)reset slave all

    wps28A8.tmp

    六、读写分离实现

    在程序层次进行设计

    class  mysql{

    $dbm=主服务器

    $dbs1=从服务器

    $dbs2=从服务器

    public function query(){

    在query里面进行语句判断,分析连接不同的mysql服务器。

    如果是查询则随机连接两台从服务器,如果是修改操作,则连接主服务器

    }

    }

    tp框架支持读写分离;

        'DB_DEPLOY_TYPE'=>1,//分布式数据库支持

        'DB_TYPE'               => 'mysql',     // 数据库类型

        'DB_HOST'               => 'localhost,192.168.3.250', // 服务器地址

        'DB_NAME'               => 'php,php',          // 数据库名

        'DB_USER'               => 'root,xiaogang',      // 用户名

        'DB_PWD'                => 'root,1234',          // 密码

        'DB_PORT'               => '3306',        // 端口

        'DB_PREFIX'             => '',

        'DB_RW_SEPARATE'=>true,//支持读写分离

    验证:

    select语句是操作从 服务器

    insert 语句是操作的主服务器

    wps28B8.tmp

    wps28C9.tmp

  • 相关阅读:
    小学教师资格考试——综合素质——材料分析
    小学教师资格考试——综合素质——教师基本能力
    牛客网暑假训练第一场——J Different Integers(莫队算法 & 树状数组)
    牛客网暑假训练第二场——A run(递推&前缀和)
    CSU
    ZOJ
    CSU
    CSU
    HDU
    Hrbust-2090 背包(最小不可构造数)
  • 原文地址:https://www.cnblogs.com/lifushan/p/5471975.html
Copyright © 2011-2022 走看看