`
wenxin2009
  • 浏览: 320569 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mysql5.7读写分离整理

 
阅读更多
测试服务器mysql安装位置:

C:\Program Files\MySQL\MySQL Server 5.7

 

参考:

https://blog.csdn.net/qq_15092079/article/details/81672920

 

 

Mysql读写分离部署步骤:

1、在VM虚拟机中分别安装三台CentOS 7虚拟机,一台主(Windows)、一台从(虚拟机Centos_64_1)、一台代理(虚拟机Centos_64_2)。

2、分别在主、从两台机器安装MySQL5.7.2版本,

   安装路径为:/usr/local/mysql

   注:以下操作操作前提在三台虚拟机安装好,两台mysql数据库安装好

3、主服务器Mysql配置:

   1>配置文件my.cnf如下:

#服务器唯一id.

server-id=1

#日志文件

log_bin=mysql-bin

log_bin_index=master-bin.index

#数据库名称,注:根据当前项目数据库名来

binlog_do_db=patroldb

#二进制日志自动删除的天数

expire_logs_days=2

   2>创建从服务器用户权限

#进入数据库

mysql -uroot -p

输入密码

#创建从数据库masterbackup用户权限,注:需修改成从服务器ip,%表示匹配0-255所有ip 

    grant replication slave on*.* to masterbackup@'192.168.159.%' identified by '123456';

#推出mysql

exit

   3>重启mysql服务

./support-files/mysql.server restart

   4>查看主服务器状态

登陆mysql

#查看主服务器状态

show master status;

   

 

4、从服务器Mysql配置:

   1>配置文件my.cnf如下:

[mysql]

default-character-set=utf8

[mysqld]

#datadir=/var/lib/mysql

#socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

#symbolic-links=0

port = 3306

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

max_connections=200

character-set-server=utf8

default-storage-engine=INNODB

lower_case_table_names=1

max_allowed_packet=16M

#服务器唯一id.

server-id=2

relay-log=slave-relay-bin

relay-log-index=slave-relay-bin.index

 

 

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

 

#

# include all files from the config directory

#

# !includedir /etc/my.cnf.d

 

   2>重启mysql

   ./support-files/mysql.server restart

   

   3>连接主服务器

#进入mysql

...

#连接主服务器,ip为主服务器ip,master_log_file为主服务器日志名

change master to master_host ='10.10.180.209',master_port =3306,master_user ='root',master_password ='123456',master_log_file ='mysql-bin.000011',master_log_pos =154

    ##Setting

set global sql_slave_skip_counter=1;

 

   4>启动slave数据同步

start slave

#查看slave信息

show slave status\G;  或 show slave status;

#Slave_IO_Running和Slave_SQL_Running都为yes,表示同步成功

 

5、测试

=====测试sql======

#主数据库插入数据时,从数据库也会插入相同数据

SELECT * from tb_user;

create table tb_user_2(id varchar(10) primary key comment 'id',name varchar(50) not null comment '信息');

insert into tb_user_2(id,name) values('1','test mysql slave');

SELECT * from tb_user_2;

commit;

 

 

6、安装好主从数据库后,接下来安装mysql-proxy,它主要是做路由代理,识别是读还是写操作

   1>下载mysql-proxy安装包,版本为:0.8.5 把安装包拷贝到/tools目录下,如没有则创建。

   

   2>安装mysql-proxy

tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz

mv mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit /usr/local/mysql-proxy

 

   3>配置mysql-proxy,创建主配置文件

cd /usr/local/mysql-proxy

mkdir lua #创建脚本存放目录

mkdir logs #创建日志目录

cp share/doc/mysql-proxy/rw-splitting.lua ./lua #复制读写分离配置文件

cp share/doc/mysql-proxy/admin-sql.lua ./lua #复制管理脚本

vi /etc/mysql-proxy.cnf   #创建配置文件

[mysql-proxy]

user=root #运行mysql-proxy用户

admin-username=root #主从mysql共有的用户

admin-password=123456 #用户的密码

proxy-address=192.168.159.128:4040 #mysql-proxy运行ip和端口,不加端口,默认4040

proxy-read-only-backend-addresses=192.168.159.129 #指定后端从slave读取数据

proxy-backend-addresses=10.10.180.209 #指定后端主master写入数据

proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定读写分离配置文件位置

admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理脚本

log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置

log-level=info #定义log日志级别,由高到低分别有(error|warning|info|message|debug)

daemon=true    #以守护进程方式运行

keepalive=true #mysql-proxy崩溃时,尝试重启

#保存退出!

chmod 660 /etc/mysql-porxy.cnf

 

   4>修改读写分离配置文件

   vim /usr/local/mysql-proxy/lua/rw-splitting.lua

if not proxy.global.config.rwsplit then

proxy.global.config.rwsplit = {

  min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1

  max_idle_connections = 2, #默认8,改为2

  is_debug = false

}

end

   

   5>启动mysql-proxy:

/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf

查看运行的mysql-proxy线程:ps -e|grep mysql-proxy

关闭mysql-proxy:kill -9  xxxx   

 

   6>测试读写分离

     (1).在主服务器创建proxy用户用于mysql-proxy使用,从服务器也会同步这个操作

grant all on *.* to 'root'@'192.168.159.128' identified by '123456';

 

#代理数据库字符串

proxy_mysql  192.168.159.128 4040 root/123456

 

 

 

 

 

 

 

 

=====================================================================

MySQL启动关闭

创建快捷指令:ln -s /usr/local/mysql /usr/bin/mysql

进入/usr/local/mysql目录下开启:./support-files/mysql.server start

 

 

从机上设置:

change master to master_host ='10.10.180.201',master_port =3306,master_user ='root',master_password ='123456',master_log_file ='mysql-bin.000011',master_log_pos =154

 

 

 

 

分享到:
评论

相关推荐

    基于mycat中间件mysql5.7读写分离

    《基于mycat中间件的MySQL5.7读写分离实现详解》 在现代高并发的互联网应用中,数据库系统的性能优化至关重要。其中,读写分离是一种常见的优化手段,通过将读操作和写操作分配到不同的数据库实例上,可以显著提高...

    mysql-读写分离.docx

    MySQL 读写分离与主从复制 MySQL 读写分离是指在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理 select 查询,达到提高数据库整体读写性能的目的。主数据库另外一个功能就是负责将事务性查询导致的...

    MySQL5.7Atlas读写分离

    MySQL5.7Atlas读写分离

    mysql5.7 双主互备、高可用、读写分离 + keepalived 实战演练

    MySQL 5.7 双主互备、高可用与读写分离是数据库系统设计中的重要概念,用于确保数据的稳定性和服务的连续性。在这个实战演练中,我们将深入探讨如何配置和实现这些特性,以及如何结合 keepalived 来增强系统的可用性...

    MySQL 5.7主从复制

    MySQL 5.7主从复制是数据库高可用性和负载均衡的一种常见实现方式,它通过将主数据库(Master)上的写操作同步到一个或多个从数据库(Slave)来实现数据的冗余备份和读写分离。在Java开发中,MySQL主从复制常常用于...

    Mysql主从数据库分离原理及配置方法资料整理

    MySQL主从数据库分离是数据库高可用性和负载均衡的一种常见实现方式。它主要通过复制技术,使得数据在主库(Master)上写入后,能够自动地同步到从库(Slave)上,以此来保证数据的一致性,并分散读取操作的压力,...

    mysql读写分离配置

    ### MySQL 读写分离配置详解 #### 环境配置 在进行MySQL读写分离配置前,我们需要确保有一个稳定的环境。本次配置环境为CentOS 7.2,并使用MySQL 5.7版本。 - **主数据库服务器(Master)**:192.168.206.100 - **...

    mycat-keepalived-mysql5.7.rar

    【标题】"mycat-keepalived-mysql5.7.rar" 提供的是一个整合了Mycat、Keepalived和MySQL 5.7的安装包,旨在实现高可用性的数据库集群解决方案。这个压缩包包含了搭建这样一个环境所需的所有组件。 【Mycat】是一个...

    Mysql主从复制及读写分离

    一、Mysql5.7的版本优势; 二、数据库集群的概述; 三、Mysql数据库的主从复制; 四、Mysql数据库的读写分离; 五、案例:搭建Mysql数据库集群(主从复制--二进制日志文件方式); 六、案例:搭建Mysql数据库集群...

    MySQL 5.7从入门到精通 第21章 读写分离的利器——MySQL Proxy 共5页.pptx

    【课程大纲】 第1章 初始MySQL 共19...第21章 读写分离的利器——MySQL Proxy 共5页.pptx 第22章 PHP操作MySQL数据库 共7页.pptx 第23章 新闻发布系统数据库设计 共6页.pptx 第24章 论坛管理系统数据库设计 共6页.pptx

    MySQL集群读写分离与主从同步原理

    里面通过举一些例子来对我们MySQL集群进行进一步的理解,先讲解数据同步,告诉大家这个MySQL集群是为啥要用数据同步,对于读写分离,我们需要让MySQL集群进行读写分离,一个节点进行读取数据,其他节点进行写数据,...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ │ 4_Atlas配置和读写分离实现.mp4 │ │ 5_Atlas分库分表实现.mp4 │ │ 6_MHA搭建和故障切换原理剖析.mp4 │ │ │ └─MySQL DBA_课堂命令-Mycat和Atlas和MHA │ mysql-master.log │ mysql-mycat.log │ ...

    MySQL5.7主从复制(Win10)及mybatis相关配置

    MySQL5.7主从复制是数据库高可用性和数据冗余的一种常见实现方式,特别是在Windows操作系统环境下,这种配置有助于确保服务的连续性和数据的一致性。本文将深入探讨MySQL5.7在Windows 10上的主从复制配置以及与...

    05_数据库代理——企业博客MySQL 5.7 基于GTID的并行MTS多级主从 Multisource Crash safe半

    此外,为了实现读写分离和负载均衡,项目中还采用了dbproxy(如mycat)作为数据库中间件。dbproxy会根据预设的规则将读操作路由到从节点,写操作发送到主节点,这样可以显著减少主节点的压力,提升整体性能。当...

    MySQL 5.7从入门到精通 第20章 MySQL管理利器——MySQL Utilities 共5页.pptx

    【课程大纲】 第1章 初始MySQL 共19...第21章 读写分离的利器——MySQL Proxy 共5页.pptx 第22章 PHP操作MySQL数据库 共7页.pptx 第23章 新闻发布系统数据库设计 共6页.pptx 第24章 论坛管理系统数据库设计 共6页.pptx

    MySQL 5.7从入门到精通 第18章 MySQL Replication 共27页.pptx

    【课程大纲】 第1章 初始MySQL 共19...第21章 读写分离的利器——MySQL Proxy 共5页.pptx 第22章 PHP操作MySQL数据库 共7页.pptx 第23章 新闻发布系统数据库设计 共6页.pptx 第24章 论坛管理系统数据库设计 共6页.pptx

    MySQL 5.7从入门到精通 第15章 MySQL日志 共22页.pptx

    【课程大纲】 第1章 初始MySQL 共19...第21章 读写分离的利器——MySQL Proxy 共5页.pptx 第22章 PHP操作MySQL数据库 共7页.pptx 第23章 新闻发布系统数据库设计 共6页.pptx 第24章 论坛管理系统数据库设计 共6页.pptx

    MySQL 5.7从入门到精通 第1章 初始MySQL 共19页.pptx

    【课程大纲】 第1章 初始MySQL 共19...第21章 读写分离的利器——MySQL Proxy 共5页.pptx 第22章 PHP操作MySQL数据库 共7页.pptx 第23章 新闻发布系统数据库设计 共6页.pptx 第24章 论坛管理系统数据库设计 共6页.pptx

    MySQL 5.7从入门到精通 第6章 MySQL函数 共76页.pptx

    【课程大纲】 第1章 初始MySQL 共19...第21章 读写分离的利器——MySQL Proxy 共5页.pptx 第22章 PHP操作MySQL数据库 共7页.pptx 第23章 新闻发布系统数据库设计 共6页.pptx 第24章 论坛管理系统数据库设计 共6页.pptx

Global site tag (gtag.js) - Google Analytics