lnmp中centos7配置mysql.5.7主从读写分离配

笔者参考的是这篇博文:http://blog.csdn.net/jiaoshenmo/article/details/51181773

在配置的过程成发现有些地方没说清楚,绕过了几个坑才配置完成的。


首先你玩的话肯定是在本地玩,流程没问题你才到服务器上配置。

我使用的镜像版本CentOS-7.0-1406-x86_64-Minimal.iso系统,我比较喜欢Mini版,因为才500多m

镜像安装教程:http://www.360doc.com/content/15/1013/10/18232756_505284501.shtml

安装wget指令,不安装的话无法下载lnmp安装包了。按顺序执行如下致命

yum -y install wget
yum -y install setup
yum install perl
 
  

PS:可以先安装好一台,其它两台镜像复制即可

准备好三台服务器,一台做master,另外两台为

slave:master:192.168.153.128(主)  注意你安装的系统的ip可能跟我不一样的,通过指令 ip -a 来查看自己的本地ip

slave:192.168.153.129

slave:192.168.153.130

直接lnmp一键环境,方便,你懂得。怎么搭建你到这个网站查看(http://www.lnmp.org)安装的时候注意mysql选择版本是5.7的,安装完成了以后记得使用ip在自己本地系统浏览器上看能不能打通

lnmp中centos7配置mysql.5.7主从读写分离配_第1张图片

master配置: 

找到mysql的配置文件my.cnf,在/etc/my.cnf末尾添加如下参数
log-bin=/home/mysql-binserver-id=1innodb_flush_log_at_trx_commit=1sync_binlog=1binlog-do-db=test #test为指定要同步的数据库,如果不指定,则默认所有数据库
你一定要把master服务器的test数据库备份还原到两台slave服务器,并且保证主从数据都是一致的。然后才能开启同步,继续往下走
slave配置: 
找到mysql配置文件my.cnf,修改参数成如下配置,注意是修改,不是添加!!!
server-id=2 #slave的标示 ,192.168.153.129这台服务器配置
server-id=3 #slave的标示 ,192.168.153.130这台服务器配置 


 
    
 
    
master配置(进入mysql终端): 
①在master中增加用于数据同步的账户:
grant replication slave on *.* to 'repl_user'@'%' identified by '123456';

'repl_user' 代表用户名  '123456'表示密码  '%'表示所有ip都可以访问
在master中查看Master status,待会用到

show master status;

显示如下图:


slave配置(进入mysql终端) 

stop slave;
change master to
master_user='repl_user',master_password='123456',master_host='192.168.153.128',master_port=3306,master_log_file='mysql-bin.000013',master_log_pos=154; 

start slave;
注意修改相应的参数,解释:
master_host填主服务器( master)IP
master_log_file填上图( master主服务器查询)的FIle字段
master_log_pos填上图( master 主服务器查询)的Position字段

到此就完成了!!!!

检查是否成功:
直接在slave服务器键入如下代码
show slave status;
如果看到 Slave_Io_State 字段有 :
Waiting for master to send event ... 

并且

show slave status\G; 

查找如下这两个参数为Yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

那就成功了 ! ! !可以去master服务器去操作test数据库,然后去slave查看是否会真的同步

注意:
①编程的时候要注意,master来写数据,slave负责读,不要去slave写数据,否则就同步不了。如果同步不了就重启一下stop slave; 那个步骤

扩展,TP框架的读写分离配置,我的配置文件如下:
读写分离的话使用两台服务器就可以了,第三台拿来备份
thinkphp读写分离
'DB_DEPLOY_TYPE'=> 1,
'DB_RW_SEPARATE'=>true, //启用智能读写分离
'DB_TYPE'   => 'mysql', // 数据库类型
'DB_HOST'   => '192.168.153.128,192.168.153.129', // 数据库服务器地址 master(写)/slave(读)
'DB_NAME'   => 'test', // 数据库名
'DB_USER'   => 'master,slave', // 用户名
'DB_PWD'    => '123456,123456', // 密码
'DB_PORT'   => 3306, // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_CHARSET'=> 'utf8', // 字符集







你可能感兴趣的:(linux,mysql)