mysql 主从分离 读写分离(mysql-proxy)

mysql主备同步:

dd1主:yum install mysql-server -y

vim /etc/my.cnf

server-id=1

log-bin=mysql-bin 启动二进制日志系统

binlog-do-db=test 需要同步的数据库

binlog-ignore-db=mysql 禁止同步的数据库

/etc/init.d/mysqld start

show master status

mysql> GRANT REPLICATION SLAVE ON *.* TO [email protected]‘172.25.254.%‘IDENTIFIED BY ‘redhat‘  创建同步用户并给予权限

mysql>Flush privileges

dd2备:yum install mysql-server -y

测试 看能不能远程登陆访问:mysql -h 172.25.254.11dd -p redhat

vim /etc/my.cnf

server-id=2

read-only

/etc/init.d/mysqld start

在同步之前确保 master 与 slave 上的数据一致性

mysql> change master tomaster_host=‘172.25.254.11‘, master_user=‘dd‘,

master_password=‘redhat‘,master_log_file=‘mysql-bin.000003‘, master_log_pos=106;

slave start

show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes   如果都是 yes,表示从库的 I/O,Slave_SQL 线程都正确开启.表明数据库正在同步

测试:

mysql数据库的主备(gtid方式)

gtid是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务id,它由服务器id及事物id组合而成,这个全局事物id不仅仅在原始服务器上唯一,在所有存在主从关系的mysql服务器也是唯一的

安装软件包:(两台数据库同时做)

tar xfmysql-5.7.17-1.el6.x86_64.rpm-bundle.tar

yum install -ymysql-community-client-5.7.17-1.el6.x86_64.rpmmysql-community-common-5.7.17-1.el6.x86_64.rpmmysql-community-libs-5.7.17-1.el6.x86_64.rpmmysql-community-libs-compat-5.7.17-1.el6.x86_64.rpmmysql-community-server-5.7.17-1.el6.x86_64.rpm

yum install * -y

注意:myslq密码在启动时初始化生成

mysql -p

alter [email protected] identified by ‘Westos+007‘ (注意新的密码格式大小写特殊字符)

dd1()

vim /etc/my.cnf

gtid-mode=ON

enforce-gtid-consistency

log-bin=mysql-bin

binlog-do-db=test

log-slave-updates  slave更新是否记录日志

dd2(备)

vim /etc/my.cnf

gtid-mode=ON

enforce-gtid-consistency

#log-bin=mysql-bin

#binlog-do-db=test

log-slave-updates

/etc/init.d/mysqld restart (两台同时)   

dd1:mysql -p

grant replicationslave on *.* to [email protected]‘172.25.42.%‘ identified by ‘Westos+007‘

dd2:mysql -p

mysql -u dd -h172.25.42.10 -p (测试)

change master tomaster_host=‘172.25.42.10‘,master_user=‘dd‘,master_password=‘Westos+007‘,master_auto_position=1;

(注意和前一个主备设置的区别就不用手动添加要同步的日志自动定位因为在生产环境中备份服务器很可能不止一台这样每一分里面的同步日志是不同的无法定位所以gtid可以不用指定binlog和主mysql的读取指针定位)

start slave

show slave status\G

同步测试:

主备mysql半同步传输(io)(一个binlog 返回一个ACK mysql上面的数据才会提交)异步传输(不需要返回ACK就提交)

主:show plugins

install pluginrpl_semi_sync_master soname ‘semisync_master.so‘

set globalrpl_semi_sync_master_enabled=1;

show global statuslike ‘%semi%‘;

show globalvariables like ‘%rpl_semi%‘;

从:show plugins

install pluginrpl_semi_sync_master soname ‘semisync_master.so‘;

install pluginrpl_semi_sync_slave soname ‘semisync_slave.so‘;

show global statuslike ‘%semi%‘;

show globalvariables like ‘%rpl_semi%‘;

测试半同步,异步的切换:

stop slaveio_thread

insert intotest.usertb values (‘dd331‘,‘41113331‘);

发现提交等待10s 备机无相应(ACK),则转为异步

多线程并行复制:(针对 sql 只在slave上面做)

备:vim /etc/my.cnf

slave-parallel-type=LOGICAL_CLOCK

slave-parallel-workers=16

master_info_repository=TABLE

relay_log_info_repository=TABLE

relay_log_recovery=ON

/etc/init.d/mysqldrestart

mysql -p

show processlist (查看线程)

mysql 读写分离(mysql-proxy)

主机:dd1.example.com 172.25.254.11

备机:dd2.example.com 172.25.254.12

管理机:dd3.example.com 172.25.254.13

dd3:

tar zxfmysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

mvmysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/

cd /usr/local/

ln -smysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy

cd /usr/local/mysql-proxy/bin

vim mysql-proxy.conf

[mysql-proxy]

user=root

#admin-username=lin3615

#admin-password=123456

#proxy-address=192.168.179.142:4040

proxy-read-only-backend-addresses=172.25.0.4

proxy-backend-addresses=172.25.0.3

proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/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

daemon=true

keepalive=true

cd /usr/local/mysql-proxy/share/dos

vim rw-splitting.lua

cd/usr/local/mysql-proxy

mkdir logs

cd/usr/local/mysql-proxy/bin

./mysql-proxy  --defaults-file=mysql-proxy.conf

chmod 600mysql-proxy.conf

dd1:

grant all on *.* to [email protected]‘172.25.254.%‘identified by‘Westos+007‘;

测试:

通过代理访问数据库实现读写分离

时间: 2024-11-10 08:10:00

mysql 主从分离 读写分离(mysql-proxy)的相关文章

Mysql主从配置+读写分离(转)

   MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了如下依赖包,如果没有请安装. apt-get -y install gcc g++ libncurses5-dev ncurses-devel openssl 一.主库安装及配置 1.源码安装cmake # tar xf cmake-3.0.0.tar.gz # cd cmake-3.0.0 # .

Mysql主从配置+读写分离

Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了如下依赖包,如果没有请安装. apt-get -y install gcc g++ libncurses5-dev ncurses-devel openssl   一.主库安装及配置 1.源码安装cmake # tar xf cmake-3.0.0.tar.gz #

docker-compose.yml样例(mysql主从+mycat读写分离)

Docker-compose.yml文件示例 1.mysql主从复制的docker-compose.yml文件 # cat docker-compose.yml version: '2' # 这个version是指dockerfile解析时用的版本,不是给我们自己定义版本号用的. services: m1: # master build: ./master # ./master文件下需要有Dockerfile文件,并且build属性和image属性不能一起使用 container_name: m

mysql-poxy 实现mysql主从架构读写分离

在高并发系统设计中,后端数据库的性能往往会成为系统的瓶颈,这时候就需要进行合理的设计,以分摊后端数据库的压力,比如在数据层前面构建缓存层.数据文件存放在RAID这样的设备.对数据进行分库分表分区存放.合理利用索引.进行数据的读写分离等.mysql-proxy提供了mysql数据库的读写分离能力,mysql-proxy通过Lua脚本能分析得出用户的sql请求,如果发现在是read请求,则会转化到master-slave模型的slave中,如果是write请求,则会转发到master中,以达到读写分

mysql-proxy代理加mysql主从实现读写分离

实验环境搭建: mysql-proxy   192.168.1.163 mysql-master  192.168.1.164 (主) mysql-slave   192.168.1.162 (从) 配置:mysql-proxy   192.168.1.163 #yum install lua -y lua-5.1.4-4.1.el6.x86_64(大部分都是默认安装过的) 下载mysql-proxy最新版:MySQL Proxy 0.8.1 alpha #yum install lrzsz -

Mysql中间件Proxysql实现mysql主从架构读写分离

实验主机 Master: 192.168.0.17 Slave: 192.168.0.20 Proxysql:192.168.0.30建议关闭防火墙建立Master: 192.168.0.17与Slave: 192.168.0.20的MySQL主从复制架构 Proxysql:192.168.0.30主机上基于yum安装proxysql [[email protected] ~ 20:21:05]#cat <<EOF | tee /etc/yum.repos.d/proxysql.repo &g

mysql主从及读写分离

主从同步 1 主配置 把237配置为主数据库服务器 授权用户从42数据库服务器连接自己的时候有拷贝数据的权限 grant   replication    slave  on  *.*    to   [email protected]"172.40.7.42"   identified by "123456"; vim /etc/my.cnf [mysqld] server_id=237 log-bin=master    #必须开启 :wq service  m

MYSQL主从同步+读写分离

环境:CentOs 6.5(最小化安装) 关闭防火墙或添加对应规则,否则slave不能连接master,会导致同步失败 Mysql1:192.168.0.231                 Mysql2:192.168.0.232                    Mysql3:192.168.0.233 在Mysql1新建同步用户和新建一个数据库yfshare,在数据库里面新建表插入数据,以作标记: mysql> select * from mytable; +------+-----

Mysql主从+Amoeba读写分离

一.安装环境 centos6.5 192.168.1.100 Amoeba-mysql centos6.5 192.168.1.101 mysql-主 centos6.5 192.168.1.102 mysql-从 二.Mysql 主从配置 在主MySQL192.168.1.101上配置 Vim /usr/local/mysql/etc/my.cnf server-id       = 1                     主库一定要比从库的数字小 binlog-do-db    = ba

基于MYCAT的MYSQL主从与读写分离配置详解与示例

1.不使用Mycat托管MySQL主从服务器,简单使用如下配置:          <dataNodename="dn1" dataHost="localhost1" database="db1"/>          <dataNodename="dn2" dataHost="localhost1" database="db2"/>          <d