`
wenxin2009
  • 浏览: 319934 次
  • 性别: 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集群读写分离与主从同步原理

    里面通过举一些例子来对我们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会根据预设的规则将读操作路由到从节点,写操作发送到主节点,这样可以显著减少主节点的压力,提升整体性能。当...

    读写分离创建方法.docx

    本文将详细介绍如何在MySQL环境下实现读写分离,包括主从数据库的配置以及Mycat中间件的安装和设置。 1. **主从数据库配置** 主从复制是实现读写分离的基础,它允许数据从主数据库实时同步到从数据库。首先,我们...

    基于 gin+gorm+redis+mysql 读写分离的电子商城.zip

    sys(自MySQL 5.7版本):提供更易用的视图来访问performance_schema中的信息,简化性能分析工作。 日志文件 MySQL通过日志记录来保证数据一致性、支持故障恢复和审计需求,主要包括: 错误日志(Error Log):...

    mysql主从复制配置(完整已测试).txt

    (1)首先,mysql主库在事务提交时会把数据库变更作为事件Events记录在二进制文件binlog中;mysql主库上的sys_binlog控制binlog日志刷新到磁盘。 (2)主库推送二进制文件binlog中的事件到从库的中继日志relay log,之后...

    第三十八章:Mysql主从复制及读写分离1

    1.安全性:MySQL数据库初始化完成以后,会产生一个 root@localhost 用户,从MySQL 5.7开始,root用户的密码不再是空,而是随机产生一

    mysql8.0性能对比以及新特性

    在MySQL 8.0发布后,很多用户都非常关注其相对于MySQL 5.7的性能改进情况。为了全面评估这一点,进行了多项性能测试,具体包括读写、只读和只写模式下的测试。 ##### 1. 测试环境 - **数据库版本**:MySQL 8.0.20 ...

Global site tag (gtag.js) - Google Analytics