标签:cto mysql-bin source tar process p12 管理 jre index
主机 | 操作系统 | IP地址 | 主要软件 |
---|---|---|---|
master | centos7.3x64 | 192.168.200.132 | mysql 5.5.24 |
slave1 | centos7.3x64 | 192.168.200.130 | mysql 5.5.24 |
slave2 | centos7.3x64 | 192.168.200.128 | mysql 5.5.24 |
Amoeba | centos7.3x64 | 192.168.200.133 | amoeba,jdk |
客户端 | centos7.3x64 | 192.168.200.129 | mysql 5.5.24 |
前言:
读写分离:
Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发,它位于与Client、DBServer(s)之间,对客户端透明。具有 负载均衡、高可用性、SQL过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。
systemctl stop firewalld.service
setenforce 0
yum install ntp -y // 时间同步 在centos7.3 中默认是安装好的(不是最小化安装)
vim /etc/ntp.conf //修改其主配置文件 因为我的网段全是200 段的
server 127.127.200.0 //本地是时钟源//
fudge 127.127.200.0 stratum 8 //设置时间层级为8(限制在15内)//
启动服务
systemctl start ntpdate.service
systemctl start ntpd.service //开启服务
/usr/sbin/ntpdate 192.168.200.132 //同步主服务器的时间
当提示the NTP socket is in use, exiting //说明同步好了可以使用
yum install gcc gcc-c++ make cmake ncurses-devel bisonlibaio-devel -y //安装所需要的环境
tar zxvf mysql-5.5.24.tar.gz -C /opt/ //.mysql软件包解压至/opt目录下
useradd -s /sbin/nologin mysql //创建管理用户
mkdir /usr/local/mysql //创建存放目录
转到MySQL解压后目录
#配置mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1
-DMYSQL_DATADIR=/home/mysql
-DMYSQL_USER=mysql
-DMYSQL_TCP_PORT=3306
make & make install //执行安装
chown -R mysql.mysql /usr/local/mysql //修改MySQL目录属主属组
export PATH=$PATH:/usr/local/mysql/bin/ //刷新环境变量
cp support-files/my-medium.cnf /etc/my.cnf //复制mysql默认配置文件及启动脚本
cp support-files/mysql.server /etc/init.d/mysqld //复制mysql默认配置文件及启动脚本
/usr/local/mysql/scripts/mysql_install_db \ /切换到MySQL解压目录//初始化数据库
--user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock /*直接建立软连接*/
vim /etc/init.d/mysqld //mysqld中的mysql安装路径及数据目录路径
basedir=/usr/local/mysql
datadir=/home/mysql
service mysqld start
mysqladmin -u root password ‘abc123‘ //设置MySQL登陆密码
mysq -u root -p //就可以登陆
主MySQL 主配置文件
vim /etc/my.cnf
server-id = 11 //主个从的区别总得有一个做老大吧
log-bin=master-bin //主服务器日志文件//
log-slave-updates=true //从服务器更新二进制日志//
service mysqld restart
从MySQL 主配文件 两个从MySQL一样的配置
vim /etc/my.cnf 注意这是在从服务器上配置
server-id = 22 //id这个两个从的服务器都一样
relay-log=relay-log-bin //从主服务器上同步日志文件记录到本地//
relay-log-index=slave-relay-bin.index //定义relay-log的位置和名称//
到此主从同步读写分离配置文件就到此接数
GRANT REPLICATION SLAVE ON *.* TO ‘myslave‘@‘192.168.200.%‘ IDENTIFIED BY ‘123456‘;
给与从服务器权限 对方的名字为myslave 访问的网段200端 密码 123456
FLUSH PRIVILEGES; //立即生效
show master status; //查看状态
以上就是主服务器的同步配置
下面是从服务器同步配置当然实在MySQL模式下
change master to master_host=‘192.168.200.132‘,master_user=‘myslave‘,master_password=‘123456‘,master_log_file=‘master-bin.000004‘,master_log_pos=339; //添加向主服务器同步数据命令
start slave; //开启slave从服务器
show slave status\G; //查看状态
在主MySQL上面添加新表 看看两个从服务是否能同步
复制jdk包及安装
cp jdk-6u14-linux-x64.bin /usr/local/
cd /usr/local/ //别忘切换目录····
./jdk-6u14-linux-x64.bin # yes 按enter
修改jdk目录名称
mv jdk1.6.0_14/ /usr/local/jdk1.6
添加jdk、jre、amoeba环境变量
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软件包至/usr/local/amoeba目录下
chmod -R 755 /usr/local/amoeba/ //修改amoebab目录权限
/usr/local/amoeba/bin/amoeba //验证amoeba是否安装成功
显示amoeba start|stop说明安装成功
+--------在三台mysql上添加权限开放给amoeba访问-----------------------+
|grant all on *.* to test@‘192.168.200.%‘ identified by ‘123.com‘; |
+------------------------------------------------------------------+
vim conf/amoeba.xml //配置文件
---30行--
<property name="user">amoeba</property> #访问amoeba的用户名
----32行---------
<property name="password">123456</property> #密码
---117-去掉注释-
<property name="defaultPool">master</property> #默认为主服务器
<property name="writePool">master</property> #写入为主服务器
<property name="readPool">slaves</property> #读取为slaves池,现有slave1、slave2服务器
vim conf/dbServers.xml
3 <dbServer name="master" parent="abstractServer"> #name为master
44 <factoryConfig>
45 <!-- mysql ip -->
46 <property name="ipAddress">192.168.200.132</property> #主服务器IP地址
47 </factoryConfig>
48 </dbServer>
49
50 <dbServer name="slave1" parent="abstractServer"> #name为slave1
51 <factoryConfig>
52 <!-- mysql ip -->
53 <property name="ipAddress">192.168.200.128</property> #从服务器1 IP地址
54 </factoryConfig>
55 </dbServer>
56
57 <dbServer name="slave2" parent="abstractServer"> #name为slave2
58 <factoryConfig>
59 <!-- mysql ip -->
60 <property name="ipAddress">192.168.200.130</property> #从服务器2 IP地址
61 </factoryConfig>
62 </dbServer>
63
64 <dbServer name="slaves" virtual="true"> #name为slaves
65 <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
66 <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->
67 <property name="loadbalance">1</property> #默认为轮询方式
68
69 <!-- Separated by commas,such as: server1,server2,server1 -->
70 <property name="poolNames">slave1,slave2</property> #轮询顺序为:slave1、slave2
71 </poolConfig>
72 </dbServer>
/usr/local/amoeba/bin/amoeba start& //启动服务
netstat -anpt | grep java //查看Java端口
这个就简单了
yum install mysql -y //直接用yum 装
mysql -u amoeba -p123456 -h 192.168.200.133 -P8066 //访问的IP是变形虫的IP地址的
验证读写分离
stop slave; //关闭同步
在主服务器上创建一个表格
create table zhang (id int(10),name varchar(10),address varchar(20));
则在客户端可以查看的到在Slave1,Slave2服务器上则看不到
反之当在从服务器本身上写入数据则客户端显示出来,主服务器显示不出来
标签:cto mysql-bin source tar process p12 管理 jre index
原文地址:http://blog.51cto.com/13660858/2139485