mysql_5.5.48主从配置

来源:互联网 发布:中世纪2全面战争优化9 编辑:程序博客网 时间:2024/05/19 06:50

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据 业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资 金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力。Ok切入今天微博主题,利用MySQL主从配置,实现读写分离,减轻数据库压力。

概述:搭设一台Master服务器(win7系统,Ip192.168.1.4),搭设两台Slave服务器(虚拟机——两台CentOS   192.168.248.128,192.168.248.129

从数据库版本一定要高于等于主数据库的版本

原理:主服务器(Master)负责网站NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模特性块固定访问Slave服务 器,或者自己写个池或队列,自由为请求分配从服务器连接主从服务器利用MySQL的二进制日志文件,实现数据同步二进制日志由主服务器产生,从服务器响应获取同步数据库

1、配置Master主服务器

1)在Master MySQL上创建一个用户‘yxue,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

mysql>create user yxue; //创建新用户

//yxue用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为root。说明一下192.168.1.%,这个配置是指明yxue用户所在服务器,这里%是通配符,表示192.168.1.0-192.168.1.255的Server都可以以yxue用户登陆主服务器。当然你也可以指定固定Ip。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'yxue'@'192.168.1.%' IDENTIFIED BY'root';

//使修改生效
mysql>FLUSH PRIVILEGES;

2)找到MySQL安装文件夹修改my.Ini文件。mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-binok

 [mysqld]下面增加下面几行代码

server-id=1   #设置服务器id,为1表示主服务器

log-bin=master-bin  #启动MySQ二进制日志系统

log-bin-index=master-bin.index

binlog-do-db=cjia_db #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql   #不同步mysql系统数据库

3)重启MySQL服务, 查看日志

mysql> SHOW MASTER STATUS \G;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 1285 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

注意:这里记住File的值:master-bin.000001和Position的值:1285,后面会用到。

2Slave从服务器(CentOS

1)找到MySQL安装文件夹修改etc/my.cnf文件,vim my.cnf,[mysqld]部分添加下面内容

server-id=2   #其值为2,表示为从数据库
log-bin=mysql-bin  #启动MySQ二进制日志系统replicate-do-db=cjia_db   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql   #不同步mysql系统数据库
:wq!    #保存退出

(2)重启MySQL.注意:MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。

(3)运行下列命令

mysql -uroot -p #进入MySQL控制台,输入密码进入。
slave stop;   #停止slave同步进程
CHANGE MASTER TO MASTER_HOST='192.168.1.4',MASTER_PORT=3306,MASTER_USER='yxue',MASTER_PASSWORD='root',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=1285;    #执行同步语句
slave start;    #开启slave同步进程

(4)SHOW SLAVE STATUS \G;   #查看slave同步信息

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!

(5)重启MySQL.

原创粉丝点击