Centos7 下 mysql 5.7通过 amoeba 读写分离
2018-07-16 20:36
190 查看
Centos7 下 MYSQL 读写分离
mysql介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
安装前准备
3台mysql服务器 (本次使用的是3台5.7版本的mysql)一台 centos 服务器 (用作安装 amoeba)
amoeba安装包 java环境包
实验步骤
关闭防火墙自启动,以及相关功能和增强性安全功能
systemctl stop firewalld.service setenforce 0
时间同步
yum install ntp -y vim /etc/ntp.conf 在配置文件中添加 server 127.127.100.0 ##本地是时钟源 fudge 127.127.100.0 stratum 8 ##设置时间层级为8 service ntpd start ##开启服务 /usr/sbin/ntpdate 192.168.100.100 ##进行时间同步
mysql主服务器上配置
vim /etc/my.cnf 在[mysqld] 下添加 server-id=1 log-bin=master-bin ##主服务器日志文件 log-slave-updates=true ##从服务器更新二进制日志 service mysqld restart mysql -u root -p ##进入mysql数据库 GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.100.%' IDENTIFIED BY '123456'; ## 给予回应从服务器的权限 FLUSH PRIVILEGES; ##刷新数据 show master status; +-------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | master-bin.000002 | 339 | | | +-------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
mysql从服务器配置
vim /etc/my.cnf 在 [mysqld]下添加 server-id=11 relay-log=relay-log-bin ##从主服务器上同步日志文件记录到本地 relay-log-index=slave-relay-bin.index ##定义relay-log的位置和名称 ## 第二台从服务器的 serverid不能相同 service mysqld restart ##重启服务 mysql -u root -p ##进入mysql数据库 change master to master_host='192.168.100.100',master_user='myslave',master_password='123456',master_log_file='master-bin.000002',master_log_pos=339; ##配置主服务器 start slave; ##开启同步 show slave status \G; ##查看同步状态
验证主从服务器是否开启成功
在主服务器上 create database test; 在从服务器上 show databases; 能看到test 则说明成功
安装amoeba服务 并进行配置
推荐使用java 1.6的环境包 cp jdk-6u14-linux-x64.bin /usr/local/ /usr/local/jdk-6u14-linux-x64.bin 一直往下 接着输入 yes , 再按 enter 稍等一会 配置完成java环境 mv jdk1.6.0_14/ /usr/local/jdk1.6 vim /etc/profile 在最后添加 export JAVA_HOME=/usr/local/jdk1.6 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin export AMOEBA_HOME=/usr/local/amoeba export PATH=$PATH:$AMOEBA_HOME/bin source /etc/profile ##使配置生效 mkdir /usr/local/amoeba ##创建amoeba服务器位置 tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ ##解压amoeba chmod -R 755 /usr/local/amoeba ##给予amoeba权限 /usr/local/amoeba/bin/amoeba ##显示amoeba start|stop说明安装成功 在三台mysql上添加权限开放给amoeba访问 grant all on *.* to test@'192.168.100.%' identified by '123.com'; 回到amoeba服务器 cd /usr/local/amoeba vim conf/amoeba.xml ---30行-- ##用户名 <property name="user">amoeba</property> ----32行--------- ##密码 <property name="password">123456</property> ---117-去掉注释- <property name="defaultPool">master</property> ##默认池 <property name="writePool">master</property> ##写入池 <property name="readPool">slaves</property> ##读取池 vi conf/dbServers.xml --23-- mysql服务器的通用数据库名称-- <property name="schema">mysql</property> --26-29--去掉注释-- <property name="user">test</property> <property name="password">123.com</property> -----42-主服务器地址--- <dbServer name="master" parent="abstractServer"> <property name="ipAddress">192.168.100.100</property> --52-从服务器主机名- <dbServer name="slave1" parent="abstractServer"> --55-从服务器地址- <property name="ipAddress">192.168.100.101</property> 将从服务器的6行复制 并配置 slave2 和其ip地址 -----63-从服务器地址池--- <dbServer name="slaves" virtual="true"> <poolConfig --末尾-- <property name="poolNames">slave1,slave2</property> </poolConfig> /usr/local/amoeba/bin/amoeba start& ##开启服务 netstat -anpt | grep java 看到8066 表示服务开启成功 看到主从服务器的地址 表示连接数据库成功
测试
在一台已经安装mysql服务器的电脑上 mysql -u amoeba -p123456 -h 192.168.100.100 -P8066 ## 通过amoeba 登录 --在主服务器上-- create database zzz; create table test (id int(10),name varchar(10),address varchar(20)); --在两台从服务器上-- stop slave; ##关闭同步 --在主服务器上-- use zzz; insert into test values('1','abc','this_is_master'); --在从服务器1上-- use zzz; insert into test values('2','abc','this_is_slave1'); --在从服务器2上-- use zzz; insert into test values('3','abc','this_is_slave2'); ------在客户端上测试----第一次会向从服务器1读数据-第二次会各从2读取 select * from test; 一次显示id为2的数据 一次显示id为3的数据 -------------在通过客户端连接数据库后写入的数据只有主会记录,然后同步给从-从服务器不会记录,从而实现了读写分离。---- insert into test values('5','abc','this_is_client'); --在主服务器上可以看到写入的数据-- select * from test; 可以看到id 为 1 和 5的数据 --在从服务器上-- start slave; 开启同步 --在客户端-- select * from test; 一次会显示 id为 1 2 5 的数据 一次会显示 id 为 1 3 5 的数据
至此 mysql的读写分离安装完成
相关文章推荐
- Centos 7环境下配置MySQL 5.7读写分离
- centos 7 上通过 yum 安装 mysql 5.7
- windows 下 MySQL读写分离、主从复制、通过amoeba代理实现读写分离 配置全过程
- Amoeba实现mysql的读写分离 CentOS6.5下
- Centos 6.9 通过yum安装NGINX 1.12.2 + 直接解压安装TOMCAT 8.5 + 通过yum安装Mysql 5.7
- centOS6.5 安装Amoeba实现mysql读写分离
- CentOS系统 Amoeba+MySql主从读写分离配置 适合新手傻瓜式教程!-----仅供参考!
- CentOS 6.5通过yum安装mysql 5.5、5.6、5.7版本
- Centos 6.5 Mysql amoeba读写分离
- CentOS 7.0 通过rpm包安装安装mysql 5.7
- CentOS 7上部署Amoeba实现MySQL主从同步,读写分离,负载均衡高可用群集
- MySQL集群系列2:通过keepalived实现双主集群读写分离
- CentOS 6、7下mysql 5.7 详细安装教程
- CentOS7下通过rpm方式安装MySQL及插入中文问题解决 [原创]
- 使用Amoeba实现MySQL的主从读写分离
- CentOS 下 MySQL 5.7 编译安装
- Amoeba搞定mysql主从读写分离
- Centos 7 yum 安装 mysql5.7
- ↑使用amoeba调度后端mysql服务器实现读写分离和负载均衡↑