1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Mysql主从复制及读写分离的实现

Mysql主从复制及读写分离的实现

时间:2024-03-07 13:13:29

相关推荐

Mysql主从复制及读写分离的实现

数据库|mysql教程

mysql,mysql读写分离,amoeba

数据库-mysql教程

微信刷礼物投票源码,uart丢包Ubuntu,爬虫的实验原理,gis php,seo软文构思lzw

Mysql5.6基于GTID的主从复制及使用Amoeba配置读写分离A、简介B、Mysql主从配置C、读写分离配置A、Amoeba简介Amoeba(变形虫)项目,该开源框架于开始发布

网盘地址解析源码 php,ubuntu修改开机页面,爬虫容易学吗,php修改php里的内容,majestic.seolzw

delphi qq 源码,ubuntu系统中毒,启动tomcat的窗口名,爬虫12306 查票,php7扩展开发教程,做seo优化每天发几篇文章lzw

Mysql 5.6 基于GTID的主从复制及使用Amoeba配置读写分离

A、简介

B、Mysql主从配置

C、读写分离配置

A、Amoeba简介

Amoeba(变形虫)项目,该开源框架于开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面使用

Amoeba优缺点

优点:

1、降低费用,简单易用

2、提高系统整体可用性

3、易于扩展处理能力与系统规模

4、可以直接实现读写分离及负载均衡效果,而不用修改代码

缺点:

1、不支持事务与存储过程

2、暂不支持分库分表,amoeba目前只做到分数据库实例

3、不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多数据的场合)

Mysql GTID

Mysql 5.6的新特性之一,加入了全局事务性ID(GTID:Global Transactions Identifier)来强化数据库的主备一致性,故障恢复,以及容错能力;也使得复制功能的配置、监控及管理变得更加易于实现,且更加健壮

B、Mysql主从配置

1、环境介绍:

两台Mysql数据库实现主从配置,172.16.14.2主机为Master;172.16.14.3为Slave

2、在Master服务器上安装并配置Mysql

######安装Mysql并加入到系统服务

[root@master ~]# tar xf mysql-5.6.13-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[root@master ~]# cd /usr/local/

[root@master local]# ln -s mysql-5.6.13-linux-glibc2.5-x86_64 mysql

[root@master local]# cd mysql

[root@master mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@master mysql]# chmod +x /etc/init.d/mysqld

[root@master mysql]# chkconfig –add mysqld

[root@master mysql]# echo “PATH=/usr/local/mysql/bin:$PATH” >> /etc/profile

[root@master mysql]# . /etc/profile

———————————————————————-

######提供主配置文件

[root@master mysql]# vim /etc/f

[client]

#password

= your_password

port

= 3306

socket

= /tmp/mysql.sock

[mysqld]

port

= 3306

socket

= /tmp/mysql.sock

skip-external-locking

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size= 16M

thread_concurrency = 8

binlog-format=ROW

log-slave-updates=true

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

report-port=3306

datadir=/data

report-host=

log-bin=mysql-bin

server-id

= 10

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

———————————————————————-

######初始化Mysql

[root@master mysql]# useradd -r mysql

[root@master mysql]# mkdir /data

[root@master mysql]# chown -R mysql.mysql /data

[root@master mysql]# chown -R root.mysql /usr/local/mysql/*

[root@master mysql]# ./scripts/mysql_install_db –user=mysql –datadir=/data/

[root@master ~]# service mysqld start

3、在Slave服务器上安装Mysql与在Master服务器上安装方法相同,这里不在介绍,,而在Slave服务器上安装Mysql有两个参数与Master服务器不同;如下

server-id=11

report-host=

[root@slave ~]# service mysqld start

4、在Master服务器上为Slave创建复制用户并测试连接

[root@master ~]# mysql

mysql> grant replication slave,replication client on *.* to ‘slave’@’172.16.%.%’ identified by ‘passwd’;

mysql> flush privileges;

————————————————————————

######测试连接

[root@slave ~]# mysql -uslave -ppasswd -h 172.16.14.2

5、启动从节点的复制线程

[root@slave ~]# mysql

mysql> change master to master_host=’172.16.14.2′,master_user=’slave’,master_password=’passwd’,master_auto_position=1;

mysql> start slave;

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 172.16.14.2

Master_User: slave

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000005

Read_Master_Log_Pos: 191

Relay_Log_File: slave-relay-bin.000003

Relay_Log_Pos: 401

Relay_Master_Log_File: mysql-bin.000005

Slave_IO_Running: Yes

#主要看这两项为“YES”说明成功

Slave_SQL_Running: Yes

6、在Master服务器创建数据库查看Slave服务器是否更新

[root@master ~]# mysql -e ‘create database allen;’

————————————————————————

[root@slave ~]# mysql -e ‘show databases;’

+——————–+

| Database

|

+——————–+

| information_schema |

| allen

|

| mysql

|

| performance_schema |

| test

|

+——————–+

######由上可见,新创建的”allen”数据库已成功同步

至此Mysql 5.6 基于GTID的复制已经完成,下面将介绍如何基于Mysql的主从复制架构做读写分离

C、读写分离配置

1、基于前面做的Mysql主从架构,然后在前端加一台服务器,用于实现Mysql的读写分离,IP地址为:172.16.14.1;由于Amoeba是java程序所研发,所以需要先安装JDK程序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。