MySQL主从复制的操作

部署环境:

系统环境CentOS release 6.5_x64

主mysql服务器ip:172.18.49.10

从mysql服务器ip:172.18.49.2

开始部署安装:

Mysql服务器都已经搭建完成。

  1. 主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 '用户名'@'%' identified by '密码';

mysql> flush privileges;

解释:在master的数据库服务器中建立一个复制的账户,每个slave使用该账户链接master来进行复制,设置所有权限(根据具体情况自定)。上面创建了一个replication用户,密码是replication。只允许在所有段的ip地址的登录。

 

查看master的状态:

# mysql -uroot -p

mysql> show master status;

记住file和position的值,配置slave的时候需要用。

  1. 从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!!!

 

 

 

 

  1. 读写分离:

安装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/

 

Amoeba启动错误:

#amoeba start

The stack size specified is too small, Specify at least 228k
Error: Could not create the Java Virtual Machine.
 

Error: A fatal exception has occurred. Program will exit.

解决方法:

打开bin目录下 amoeba启动文件

# vim amoeba

修改58行的Xss参数:

DEFAULT_OPTS="-server -Xms1024m -Xmx1024m -Xss128k"

修改为:
DEFAULT_OPTS="-server -Xms1024m -Xmx1024m -Xss256k"

 

# /usr/local/amoeba/bin/amoeba

amoeba start|stop  //显示这个表示amoeba安装成功。

配置amoeba读写分离

在master、slave1、slave2、、、、中开放权限给amoeba访问:

mysql> grant all on *.* to  test@'%' identified by '123';——写到主服务器写

修改amoeba的配置文件:

cd /usr/local/amoeba/conf进入这个路径

# cp amoeba.xml amoeba.xml.bak

# vi /usr/local/amoeba/conf/amoeba.xml

 

修改连接amoeba代理服务器的有用户名和密码。

 

 

修改默认的地址池名字,写和读的名字:注意:删掉注释符。

对应主机名

编辑修改dbservers.xml配置文件(对后端mysql服务器的配置)。

cd /usr/local/amoeba/conf

# cp dbServers.xml dbServers.xml.bak

# vi dbServers.xml

 

指定主从数据库地址:

都是对应得主机名

 

之后启动amoeba:

# /usr/local/amoeba/bin/amoeba start&——后台执行

验证

Yum -y install mysql——安装一个mysql

Mysql -uamoeba -p密码 -h本机ip  -P端口号

# netstat -anpt  | grep :8066

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值