部署环境: 系统环境CentOS release 6.5_x64 主mysql服务器ip:172.18.49.10 从mysql服务器ip:172.18.49.2 开始部署安装: Mysql服务器都已经搭建完成。 l 主mysql上: # cp /etc/my.cnf /etc/my.cnf.bak # vi /etc/my.cnf log_bin=mysql-bin //开启二进制日志 server_id=1 //server_id 的值主从必须不同 # service mysqld restart 登录mysql后进行授权: mysql> grant all on *.* to 'replication'@'%' identified by 'replication'; mysql> flush privileges; 解释:在master的数据库服务器中建立一个复制的账户,每个slave使用该账户链接master来进行复制,设置所有权限(根据具体情况自定)。上面创建了一个replication用户,密码是replication。只允许在所有段的ip地址的登录。 查看master的状态: # mysql -uroot -p mysql> show master status; 记住file和position的值,配置slave的时候需要用。 l 从mysql上配置: 修改配置文件 # vi /etc/my.cnf server_id = 2 //修改server_id,其值必须和master的不同。 relay_log=relay-logs //开启中继日志,可以自定义目录,mysql用户有权限即可 # service mysqld restart # mysql -uroot –p 查看中继日志的启动状态: mysql> show global variables like '%relay%'; 连接master服务器: mysql> change master to master_host='172.18.49.10',master_user='replication',master_password='replication',master_log_file='master-bin.000003',master_log_pos=284; 选项解释: master_host:Master 服务器IP master_user:Master 服务器授权用户,也就是 Master 前面创建的那个用户 master_password:Master 服务器授权用户对应的密码 master_log_file:Master binlog 文件名 master_log_pos:Master binlog 文件中的 Postion 值 手动启动复制线程: mysql> start slave; 如果 Last_SQL_Error 没有错误提示以及 Salve 中的 Exec_Master_Log_Pos 值和 Master 中的 show master status; 中的 Postition 值是一样的,这样的话,MySQL 主从复制应该是成功的。 测试: 在master上: mysql> use test; mysql> create table users(id int(10),name varchar(48),sex char(16)); mysql> insert into users values(1,'qq','nan'); mysql> flush privileges; 在slave上: mysql> use test; 则,主从复制OK!!! l 读写分离: 安装jdk # rpm -ivh jdk-8u20-linux-x64.rpm # vi /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_20/ 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 # java –version 安装amoeba # mkdir /usr/local/amoeba # tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ # chmod -R 755 /usr/local/amoeba/ # /usr/local/amoeba/bin/amoeba amoeba start|stop //显示这个表示amoeba安装成功。 配置amoeba读写分离 在master、slave1、slave2、、、、中开放权限给amoeba访问: mysql> grant all on *.* to test@'172.18.49.%' identified by '123'; 修改amoeba的配置文件: # cp amoeba.xml amoeba.xml.bak # vi /usr/local/amoeba/conf/amoeba.xml 修改连接amoeba代理服务器的有用户名和密码。 修改默认的地址池名字,写和读的名字:注意:删掉注释符。 对应主机名 编辑修改dbservers.xml配置文件(对后端mysql服务器的配置)。 # cp dbServers.xml dbServers.xml.bak # vi dbServers.xml 指定主从数据库地址: 都是对应得主机名 之后启动amoeba: # /usr/local/amoeba/bin/amoeba start& # netstat -anpt | grep :8066