配置主服务器(master)
1、编辑数据库配置文件my.cnf,一般在/etc/目录下。
#vi /etc/my.cnf
在[mysqld]的下面加入下面代码:
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog-do-db=wordpress
binlog_ignore_db=mysql
server-id=1中的1可以任定义,只要是唯一的就行。
binlog-do-db=wordpress是表示只备份wordpress。
binlog_ignore_db=mysql表示忽略备份mysql。
不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。
2、然后重启MySQL:
#service mysqld restart
3、登录MySQL服务器。
#mysql -uroot -p
在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令,把X.X.X.X替换为从服务器的IP。
mysql>CREATE USER 'user'@'X.X.X.X' IDENTIFIED BY 'password';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';
4、执行以下命令锁定数据库以防止写入数据。
mysql>FLUSH TABLES WITH READ LOCK;
这时不要退出mysql命令行,因为退出命令行后,全局表锁就失效,新开一个窗口继续执行以下命令。
5、导出数据库
#mysqldump -u root -p123456 --all-databases > /root/all.sql
6、再次连接数据库进入mysql命令行查看master状态。
mysql>SHOW MASTER STATUS;
请记下显示的信息,配置从服务器会用到。
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000003 | 1001741 | dbispconfig | mysql |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
7、解锁数据表。
mysql>UNLOCK TABLES;
8、使用scp命令传输数据库文件all.sql到从服务器。
#scp /root/all.sql [email protected]:/root
配置从服务器(slave)
登录从服务器。
1、导入主服务器的数据库。
#mysql -u root -p123456 < /root/all.sql
2、编辑配置文件my.cnf,在[mysqld]下面加入:
server-id=2
2可以自己定义,只要保证唯一的就行。
3、保存文件并重启mysqld。
#service mysqld restart
4、登录mysql服务器,执行以下命令。
mysql>CHANGE MASTER TO
MASTER_HOST='X.X.X.X',
MASTER_USER='user',
MASTER_PASSWORD='password',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=98,
MASTER_CONNECT_RETRY=10;
MASTER_HOST:主服务器的IP。
MASTER_USER:配置主服务器时建立的用户名
MASTER_PASSWORD:用户密码
MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。
这里注意 6和7就是前面查询到的结果
5、启动slave进程。
mysql>START SLAVE;
至此主从复制就做完了,可以进行测试。
Amoeba的安装
cd /tmp
mkdir /usr/local/amoeba
wget http://softlayer.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.2.0-RC5.tar.gz
tar xzf amoeba-mysql-binary-2.2.0-RC5.tar.gz -C /usr/local/amoeba
我这里下载是的2.2版本3.X版本好像还是beta的,链接地址可能有错误,反正下载下来直接解压就可以用了,当然Amoeba是基于java写的,1.6我测试正常1.7没测试
所以需要配置环境变量,最后把/usr/local/amoeba也添加到环境变量里面,就可以直接使用命令了
主要配置很简单,主要是dbServer.xml和amoeba.xml
dbServer.xml
${defaultManager}
64
128
3306
test
root
test
500
500
10
600000
600000
true
true
true
192.168.1.200
192.168.1.88
1
Master,Slave
amoeba.xml
View Code
1
2
3
4
5
6
7
8
9
10
11 8066
12
13
14
15 192.168.1.200
16
17
18 ${clientConnectioneManager}
19
20
21
22 128
23 64
24
25
26
27
28
29
30 webadmin
31
32 webadmin
33
34
35
36 ${amoeba.home}/conf/access_list.conf
37
38
39
40
41
42
43
44
45
46
47
50
51 127.0.0.1
52 true
53 ${clientConnectioneManager}
54
55
56
57
58
59
60
61
62 20
63
64
65 30
66
67
68 30
69
70
71 500
72
73
74 60
75
76
77
78
79
83
84
85 com.meidusa.amoeba.net.ConnectionManager
86
90
91
92 com.meidusa.amoeba.net.AuthingableConnectionManager
93
94
98
99
100
101
102
103 ${amoeba.home}/conf/dbServers.xml
104
105
106
107
108
109 ${amoeba.home}/conf/rule.xml
110 ${amoeba.home}/conf/ruleFunctionMap.xml
111
112
113 ${amoeba.home}/conf/functionMap.xml
114 1500
115 Master
116
117
118 Master
119 Slave
120
121 true
122
123
这个配置都很简单,如果实在不会看官方文档,因为这个代理是国人编写的,文档还是慢清晰的,我就是看文档学会的,不用去google或者百度
文档在这里,好像现在不能访问了,直接搜索amoeba文档吧就可以找到