作者:rvu2352314 | 来源:互联网 | 2023-05-17 07:22
笔者参考的是这篇博文:http:blog.csdn.netjiaoshenmoarticledetails51181773在配置的过程成发现有些地方没说清楚,绕过了几个坑才配置完成的。首先
笔者参考的是这篇博文: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在自己本地系统浏览器上看能不能打通
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: YesSlave_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', // 字符集