mysql主从复制+读写-jx

mysql主从复制

部署环境:

系统环境CentOS release 6.5_x64

主mysql服务器ip:172.18.49.10

从mysql服务器ip:172.18.49.2

开始部署安装:

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

一、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

(特殊情况下)/etc/init.d/mysqld start

登录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的时候需要用。

二、  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 lik

 

连接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!!!

三、读写分离:

安装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 –vers

 

 

 

安装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.bab

#vim dbServers.xml

 

 指定主从数据库地址:

都是对应的主机名

 

 

 

 

之后启动amoeba:
# /usr/local/amoeba/bin/amoeba start&
# netstat -anpt | grep :8066

 

posted on 2019-09-28 15:16  哇哈哈哈哈·  阅读(55)  评论(0)    收藏  举报