`

MySQL主从的配置

阅读更多

 第一步:主从配置

1.  分别在主从服务器上安装mysql

     主服务器的(master) Ip:192.168.31.140

     从服务器的(slave)  Ip:192.168.31.186

 

2.修改主服务器上my.cnf文件

 2.1 设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

    server-id=1 


 2.2 需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

    log_bin=/var/log/mysql/mysql-bin.log

 2.3 需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

    binlog-do-db=imtest

*注意:主从服务器的bind-address     = 127.0.0.1需要注释掉(从服务器注释不注释都可以)

     授权用户:root只能从192.168.31.182这个IP访问主服务器192.168.31.143上面的数据库,并且只具有数据库备份的权限

grant replication slave  on *.* to 'root'@'192.168.31.186' identified by '123456' with grant option;

配置完成后service mysql restart
mysql -u root -p   #进入mysql控制台
show master status;  查看主服务器,出现以下类似信息



 

3.配置MySQL从服务器的my.cnf文件

 3.1 设置服务器id,为2表示从服务器,

    server-id=2

  3.2 启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
    log-bin=mysql-bin 
  3.3 需要同步的数据库名

   replicate-do-db=imtest

service mysql restart
MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。


mysql  -u root -p  #进入MySQL控制台
slave stop;   #停止slave同步进程

change master to master_host='192.168.31.140',master_user='root',master_password='123456',

master_log_file='mysql-bin.000004',master_log_pos=527;   #执行同步语句

(其中master_log_file和master_log_pos是从主服务器的show master status得出


slave start;    #开启slave同步进程


SHOW SLAVE STATUS\G   #查看slave同步信息,出现以下内容



 

注意查看:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

以上这两个参数的值为Yes,即说明配置成功!

 

4.测试

在主服务器建表

  use imtest;

  create table student(

   id int(30) primary key not null,

   name varchar(30) not null,

   age varchar(30) not null);

发现主从服务器都有student表产生,说明配置成功。

 第二步:安装配置MySQL-Proxy

      1. 安装脚本lua

#apt-get install lua5.1

MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua。

2.安装MySQL-Proxy     #apt-get install mysql-proxy

当前获取到的版本是:mysql-proxy 0.8.1(查看版本命令:#mysql-proxy -V)


 


   3.修改rw-splitting.lua

配置并使用rw-splitting.lua读写分离脚本,脚本目录是 /usr/share/mysql-proxy,修改读写分离脚本rw-splitting.lua,修改默认连接数,进行快速测试,如果不修改连接数的话要达到连接数为4时才会启用读写分离   #vim /usr/share/mysql-proxy/rw-splitting.lua这是因为mysql-proxy会检测客户端连接,当连接没有超过min_idle_connections预设值时, 不会进行读写分离, 即查询操作会发生到Master上

4.在代理机器上执行

sudo mysql-proxy --proxy-read-only-backend-addresses=192.168.31.186:3306 --proxy-backend-addresses=192.168.31.140:3306 --admin-lua-script=/usr/share/mysql-proxy/rw-splitting.lua --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua >/var/log/mysql-proxy/mysql-proxy.log --admin-username=root --admin-password=123456&

mysql-proxy --proxy-read-only-backend-addresses——数据库只读的地址

proxy-backend-addresses —— 数据更新的地址

当运行sudo mysql-proxy 上面语句后,查询进程没有4040的时候,需要重启mysql ( sudo /etc/init.d/mysql restart) 之后再输入proxy设置。

netstat -ant



 

tcp        0      0 0.0.0.0:4040            0.0.0.0:*               LISTEN    

tcp        0      0 0.0.0.0:4041            0.0.0.0:*               LISTEN
说明启动成功

5.查看数据库连接

#netstat -ant 可以看到一个连接

 6.测试读写分离:

#mysql -u root -p -P4040 -h 192.168.31.186必须指定-h参数,不然报下面错误:

显示数据列表mysql> show databases;

如果你是搭建MySQL-Proxy成功的话,你上面查看到的数据库列表应该是192.168.31.186服务器上的数据库列表。(可以在140和186分别创建不同的数据库进行测试)

 

 

 

  • 大小: 2.1 KB
  • 大小: 11.1 KB
  • 大小: 3 KB
  • 大小: 6.7 KB
  • 大小: 2.1 KB
分享到:
评论

相关推荐

    MySQL主从配置详解.pdf

    综上所述,MySQL主从配置的原理是通过二进制日志的记录和复制过程,实现数据在主从服务器之间的同步。配置MySQL主从复制可以带来许多好处,如分散查询负载、提升查询效率、数据备份和读写分离等,但同时也需要注意...

    MySQL主从配置完整步骤资料

    ### MySQL主从配置知识点详解 #### 一、主服务器配置 **1.1 创建复制用户** - **目的**: 为了确保从服务器能够连接到主服务器并获取数据更新。 - **命令**: ```sql mysql> GRANT REPLICATION SLAVE ON *.* TO '...

    MySql主从配置

    MySQL主从配置是一种数据库复制技术,它允许一个MySQL服务器(主服务器)的数据更新同步到其他一个或多个服务器(从服务器)上。这种配置在大型应用、分布式系统和高可用性环境中非常常见,因为它提供了数据备份、...

    mysql主从配置资源

    MySQL主从配置是数据库高可用性和负载均衡的一种常见策略,尤其在Windows环境下,为了实现读写分离、主从复制和一主多从架构,可以极大地提高数据库系统的性能和稳定性。结合Spring框架,我们可以轻松地在应用程序中...

    mysql主从配置操作手册

    ### MySQL主从配置操作详解 #### 一、MySQL服务器复制配置背景 MySQL的主从复制是一种常见的高可用性和数据冗余解决方案。通过设置一个主服务器(Master)和一个或多个从服务器(Slave),可以实现数据的实时同步...

    Mysql主从配置.docx

    #### 一、为什么使用MySQL主从配置? 在现代数据库系统中,随着业务规模的不断扩大和用户数量的激增,单一数据库服务器往往难以满足高性能和高可用性的需求。为了提高系统的整体性能和可靠性,采用MySQL主从配置...

    mysql热备及mysql主从配置

    "mysql热备及mysql主从配置"是实现这一目标的关键技术。热备是指在不影响主数据库正常服务的情况下,实时同步主数据库的数据到备用数据库,以确保在主库出现问题时能够快速切换到备库,减少业务中断时间。而MySQL...

    mysql主从数据库配置

    MySQL主从配置的优点主要有两方面: 1. 负载均衡:通过将查询操作分散到多个从服务器上,减轻了主服务器的压力,提高了系统的查询效率。 2. 数据冗余与故障恢复:从服务器可以作为主服务器的备份,一旦主服务器出现...

    Mysql主从配置详解

    ### MySQL主从配置详解 #### 一、MySQL主从配置概述 MySQL的主从复制机制是一种数据同步方式,主要用于实现数据库的数据备份与高可用性。通过设置一个或多个从服务器来复制主服务器上的数据更新操作,可以有效分散...

    小记一次mysql主从配置解决方案

    MySQL主从配置是一种常见的数据库高可用性和负载均衡策略,它主要目标是实现读写分离,提升数据库系统的并发处理能力。在大数据量或者复杂的报表查询场景下,某些SQL语句可能会导致长时间锁定表,从而影响到前端应用...

    mysql主从库配置

    ### MySQL 主从库配置详解 #### 一、MySQL 安装与环境变量设置 在进行 MySQL 主从库配置之前,我们需要确保已经正确安装了 MySQL,并设置了相应的环境变量。以下是具体的步骤: 1. **下载 MySQL 免安装版**: - ...

    mysql5.6安装主从配置

    ### 二、MySQL主从配置 #### 1. 配置主服务器 在主服务器上编辑MySQL配置文件`/etc/my.cnf`,添加主服务器配置: ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=test ``` #### 2. 启动主服务器 ```...

    Mysql主从配置my.cnf.zip

    Mysql主从配置文件,主文件my.cnf,从文件my.cnf完整版。部分配置如下: [client] port = 3306 socket =/tmp/mysql.sock [mysql] no-auto-rehash prompt="\u@\h [\d]>" #pager="less -i -n -S" #tee=/opt/mysql/...

    tp3.2部署mysql主从配置.zip

    "tp3.2部署mysql主从配置"的主题涉及了Laravel框架的一个旧版本(ThinkPHP 3.2)与MySQL数据库的主从设置。以下是对这个主题的详细解释: 首先,ThinkPHP 3.2是一个基于MVC设计模式的PHP开发框架,它简化了Web应用...

Global site tag (gtag.js) - Google Analytics