使用Amoeba实现MySQL的主从读写分离

前言:作者踏入Linux大门不久,这是第一个完成的功能演练。本文包含了MySQL+Amoeba实现主从读写分离的配置及个人过程中遇到的问题总结,网上相关教学也很多,如有错误和疏漏请多多指教。

主从同步架构的优点

读取工作交给了从服务器,降低了主服务器的压力

在从服务器进行备份,避免备份期间影响主服务器服务

当主服务器出现问题时,可以切换到从服务器。

Amoeba介绍

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

Amoeba for Mysql主从分离模式

MySQL的主从同步配置 实验环境 配置主库

本次操作使用yum服务进行安装,输入yum -y install mysql(注:-y 表示安装过程自动选择’y’)

service mysql start 启动MySQL服务

在root账户下使用 mysqladmin -u root password ‘newpassword’为mysql的root账户设置密码(注:首次登录root账号没有密码,直接回车进入,但没有设置密码无法进行很多操作)

mysql -u root -p 输入密码后登录

grant replication salve on *. * to ‘root’@’172.16.2.230’ identified by ‘123456’ (添加从库到本机同步的远程账号下,root是账号,ip为从库地址,123456为登录密码)

select user, host,password from mysql.user查看是否创建成功并查看有无账号密码为空的账户,并删除(注:这步不是必须,空账户的存在会影响登录,这是在遇到问题之前先进行排除)

vim /etc/my.cnf

(server-id 不能与其它节点重复,replicate_ignore_db设置了不进行同步的databases)

退出MySQL,service mysqld restart重启后登录,查看server_id 以及 File+position信息并记录

master status

配置从库

在172.16.2.230上开始配置从库,安装过程参照主库(这里笔者使用的是默认数据库作为主从,所以直接用yum安装从库,如果主库有改动需要保持一致则使用dump备份并在从库节点上恢复的方式配置)

vim /etc/my.cnf 编辑配置文件

从库配置


(注:这里的server-id一定不能与主库相同)

service mysqld restart重启数据库

mysql -u root -p -h 172.16.2.239验证连接主库(此处的root为在主库中授权过的账号)

退出远程连接,换为本地root账号登录,SHOW VARIABLES LIKE ‘server_id’查看ID号确认是否和主库重复

slave stop;关闭同步服务

change master to master_host=’172.16.2.239’, master_user=’root’, master_password=’123456’, master_log_file=’master_bin.000019’, master_log_pos=106;(注:此处的master_user为授权的账号,log_file和pos为之前主库上查看的记录,见上面第8步。如果在主库中在未同步的情况下使用过flush privileges命令刷新过数据库的话,log_file会自动+1)

slave star**t 打开同步,**show slave status查看状态

同步状态


这里主要注意的是Slave_IO_Running 和 shlave_SQL_Running是否为Yes,如果为NO,注意检查配置

检查完状态后可以在主库中的test库中建立一张表,写入完成后便能再从库中查看,同步完成

安装配置 Amoeba

1.配置Java环境

此处需要下载JDK,笔者图方便直接从yum上进行下载安装,yum -y install java-1.6.0-openjdk 这里使用的是1.6的版本。也可以直接使用wget 到Oracle上进行下载,只不过需要解压建立连接等操作。
vim /etv/profile 进行java环境变量的配置,注意下载方式不同,路径也不同

环境变量


完成后执行source profile ,使用java -verison查看
2. 安装Amoeba

wget https://sourceforge.net/projects/amoeba/files/Amoeba_for_mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz/download mkdir /usr/local/amoeba-2.2.0 tar xvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba-2.2.0

3.配置Amoeba

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b3fa17b0e2f3b3accc14f8e27d7ae8cc.html