zoukankan      html  css  js  c++  java
  • MySQL主从配置

      使用主从设计的最大优势在于可以利用所有的Slave主机实现数据的读取操作。  

      如果要想在工作之中提升MySQL执行性能,那么肯定单一主机是无法完成所需要的任务的,所以在这种情况下就需要进行多个MySQL主句的实现,那么肯定就要采用主从结构进行处理,在Master节点执行更新处理,而后在所有的Slave节点执行数据的查询处理(前提:没有这么大的并发量)。

      在实际的工作环境之中,往往会根据访问量预估的情况进行主从的配置,同时自动同步到Slave,本次考虑到实现问题,所以采用一主一从制,只准备两台主机,实际情况需要自己来选择设置多少台的Slave,同时这样的结构也实现了数据库的热备份处理。

        mysql-groupa-master  192.168.28.224

        mysql-group-slave    192.168.28.225

    1. 如果要进行主从设计,那么在设计之前一定要有如下的几个前提:

      》保证所有的Mysql数据库的版本完全相同,使用的时候建议使用稳定版;

      》保证所有的主机时间完全同步,所有的时间一定要与国家时间服务器的信息进行同步处理;

      》如果电脑上已经启动过了MySQL,那么一定要删除一个配置文件:rm /usr/local/mysql/data/auto.cnf;

    2. 如果要想进行主从的同步处理,首先要修改mysql的配置文件:【master】

      》打开my.cnf配置文件:vim /usr/local/mysql/my.cnf

      》在my.cnf文件中追加如下信息:

    log_bin=mysql-bin-a        //进行同步bin配置名称的定义,在从主机上也要使用此名称
    server_id=224              //进行服务的id定义,一般都使用IP地址的后三位

    3. 完成配置后启动MySQL:

    /usr/local/mysql/bin/mysqld_safe --user=root > /dev/null 2>&1 &

    4. 登录MySQL客户端:mysql -h127.0.0.1 -uroot -p123456

    5. 由于当前是master主机,查询master状态:

    show master status ;

      程序执行结果会显示:File: mysql-bin-a.000001、Position:120

    6. 由Slave连接到Master的MySQL时需要一个账号,进行账号密码的设置:'@'%'

    GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'sync_guest'@'192.168.28.%' IDENTIFIED BY '123456' ;  //设置账号
    FLUSH PRIVILEGES ;  //立即生效

    7. 【Slave】在Slave主机上修改my.xnf配置文件,主要是设置bin名称:

      》打开my.cnf配置文件:vim /usr/local/mysql/my.cnf

      》在my.cnf文件里面追加如下信息内容:

    log_bin=mysql-bin-a    //与master主机上配置的名称相同
    server_id=225            //进行服务id定义,一般都使用IP地址的后三位

    8. 【Slave】启动MySQL进程:/usr/local/mysql/bin/mysqld_safe --user=root > /dev/null 2>&1 &

    9.  登录MySQL客户端:mysql -h127.0.0.1 -uroot -p123456

    10. 设置与Master的从属配置关系:

    change master to master_host='192.168.28.224',master_user='sync_guest',master_password='123456',master_log_file='mysql-bin-a.000001',master_log_pos=120 ;

    11. 启动Slave运行状态:start slave ;

    12. 查看当前从主机的所有状态:show slave status G ;

    Slave_IO_Running:Yes      //显示如下信息
    Slave_SQL_Runninf:Yes

    13 在Master上执行sql脚本,查看Master与Slave是否同步:

    DROP DATABASE IF EXISTS mldn ;
    CREATE DATABASE mldn CHARACTER SET UTF8 ;
    use mldn ;
    CREATE TABLE member(
       mid VARCHAR(50) ,
       name VARCHAR(50) ,
       age INT ,
       salary DOUBLE ,
       birthday DATE ,
       note  TEXT ,
       CONSTRAINT pk_mid PRIMARY KEY(mid)
    ) ;
    INSERT INTO member(mid,name,age,salary,birthday,note) VALUES ('lee','hello',10,2000.0,'2005-11-11','very good') ;
    INSERT INTO member(mid,name,age,salary,birthday,note) VALUES ('admin','administrator',10,2000.0,'2005-11-11','very good') ;
    INSERT INTO member(mid,name,age,salary,birthday,note) VALUES ('guest','administrator',10,2000.0,'2005-11-11','very good') ;

    14. 使用SQL命令查看:

      show databases ;      //查看数据库

      use mldn ;           //使用数据库

      show tables ;       //查看数据表

      desc member ;          //查看表结构

      select * from member ;    //查看数据

  • 相关阅读:
    jvm-java内存模型与锁优化
    jvm-垃圾收集器与内存分配策略
    jvm-内存区域与内存溢出异常
    并发-AQS源码分析
    并发-Synchronized底层优化(偏向锁、轻量级锁)
    并发-CopyOnWrite源码分析
    并发-AtomicInteger源码分析—基于CAS的乐观锁实现
    【BZOJ】3052: [wc2013]糖果公园 树分块+带修改莫队算法
    【BZOJ】1086: [SCOI2005]王室联邦
    【BZOJ】4358: permu 莫队算法
  • 原文地址:https://www.cnblogs.com/luliang888/p/11141092.html
Copyright © 2011-2022 走看看