mysql双机热备以及amoeba读写分离实验2014-06-23Mysql读写分离是为了提高网站的访问速度,提高数据库的并发负载能力。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离来提升数据库的并发负载能力, 这样的方案来进行部署与实施的。注意:先做主从复制,再度读写分离。MySQL主从复制结构是基于mysql bin-log日志基础上,从库通过打开IO进程收到主库的bin-log日志增量信息,并保存到本地relay log,而后再通过打开MYSQL进程从relay log上获取的增量信息并翻译成SQL语句后写到从数据库。实验环境:主:10.8.0.150从:10.8.0.151amoeba:10.8.0.160PS:为了方便实验,可直接yum mysql 或者直接脚本执行lnmp。拓扑图如下:

实验第一步:登陆主服务器操作命令mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO "cong151"@"10.8.0.151" IDENTIFIED BY "123456";mysql> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000008 | 5722410 | | |+------------------+----------+--------------+------------------+记住file和Position。登陆从服务器操作命令1、编辑my.ini 文件 ,修改 server-id = 2 (默认为1,因做mysql的主从复制,需要修改ID和主服务器上不一样即可,也不可和同内网mysql服务器其他的ID一样)2、登入mysqlmysql> change master to master_host="10.8.0.150",master_user="cong151",master_password="123456",master_log_file="mysql-bin.000008",master_log_pos=5722410;mysql> start slave;mysql> show slave statusG*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.8.0.150 Master_User: cong151 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000008 Read_Master_Log_Pos: 5722410 Relay_Log_File: localhost-relay-bin.000061 Relay_Log_Pos: 251