前言:作者踏入Linux大门不久,这是第一个完成的功能演练。本文包含了MySQL+Amoeba实现主从读写分离的配置及个人过程中遇到的问题总结,网上相关教学也很多,如有错误和疏漏请多多指教。
主从同步架构的优点读取工作交给了从服务器,降低了主服务器的压力
在从服务器进行备份,避免备份期间影响主服务器服务
当主服务器出现问题时,可以切换到从服务器。
Amoeba介绍Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能。本次主要用到的就是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信息并记录
在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库中建立一张表,写入完成后便能再从库中查看,同步完成
安装配置 Amoeba1.配置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