mysql读写分离net_mysql主从复制+读写分离

配置主服务器(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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngView 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文档吧就可以找到

你可能感兴趣的:(mysql读写分离net)