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 ;    //查看数据

原文地址:https://www.cnblogs.com/luliang888/p/11141092.html