centosamoeba+mysql主从集群分离(二)

2015-01-27 18:07:45 · 作者: · 浏览: 65
Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 1 row in set (0.00 sec)
9、查看Master上面的状态;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| updatelog.000012 | 15016 | data | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

由此可见两者的File、Position存在问题,所要要去Slave上设置对应主库的Master_Log_File、Read_Master_Log_Pos;执行如下语句;
mysql>slave stop;
mysql>CHANGE MASTER TO MASTER_HOST='主库ip',MASTER_USER='slave', MASTER_PASSWORD='******',MASTER_LOG_FILE='updatelog.000012',MASTER_LOG_POS=15016;
确保 Slave_IO_Running: Yes 、Slave_SQL_Running: Yes都要为YES才能证明Slave的I/O和SQL进行正常


10、在这期间登录mysql经常会用到一些语句,我写下来。
show databases;
show tables;
create database 库明
create table 表明(id int, name varchar(100));
insert into values(a,tom)
create table 表明(id int)
insert into 表明 values(1)
drop table 表明
delete from user where user='删除用户'
select * from user,host from user; 查看用户和登录权限的
use 库明


MySQL插入100万条记录测试 存储过程
BEGIN
#Routine body goes here...
DECLARE i INT DEFAULT 0;
WHILE i < 1000000 DO
INSERT INTO test values(i, concat('zhangsan',i));
SET i = i + 1;
END WHILE;
END



装amoeba之前,要把amoeba连接数据库的用户名和密码一定要授权,命令如下:
建立amoeab用户赋予权限命令:grant all on *.* to 'amoebauser'@'%'identified by 'amoebapassword'
注:在mysql主库上边授权.
10、Amoeba的安装
Amoeba 下载地址:http://sourceforge.net/projects/amoeba/
mkdir /usr/local/amoeba
wget http://softlayer.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.1.0-RC5.tar.gz
tar xzf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
配置全局环境变量
vi /etc/profile
export PATH=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
export AMOEBA_HOME=/usr/local/amoeba
export PATH=/usr/local/amoeba/bin:$PATH
说一下java的变量,可以用which java 和whereis java去查找,找不到就用 find / -name java 查找,不要被连接文件糊弄了。要看清楚。
我这里就用 find / -name java 查找的。
然后 让环境变量生效
source /etc/profile


11、Amoeba for mysql配置

配置Amoeba for mysql的读写分离主要涉及两个文件:
1、/usr/local/amoeba/conf/dbServers.xml
此文件定义由Amoeba代理的 数据库如何连接,比如最基础的:主机IP、端口、Amoeba使用的用户名和密码等等。
2、/usr/local/amoeba/conf/amoeba.xml
此文件定义了Amoeba代理的相关配置。

dbServers.xml文件配置

abstractServer配置:


${defaultManager}
64
128



3306



dbname



root



root






500
500
10
600000
600000
true
true

此部分定义真实mysql服务器的端口,数据库名称,mysql用户及密码。

主从数据库定义:




192.168.0.1





192.168.0.2





192.168.0.3





1



Slave1,Slave2

此部分定义主服务器,从服务器,及从服务器连接池。这里只定义数据库地址,它们的用户及密码就是上面的abstractServer里的设置。注意用来连接真实mysql服务器的用户必须拥有远程连接权限。

amoeba.xml配置

amoeba连接验证配置:





root


root




${amoeba.home}/conf/access_list.conf



这里定义连接amoeba时用来验证的用户及密码。

读写分离配置:

Master
Master
virtualSlave

defaultPool:配置了默认的数据库节点,一些除了SELECTUPDATEINSERTDELETE的语句都会在defaultPool执行。

writePool :配置了数据库写库,通常配为Master,如这里就配置为