微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于MYCAT中间件实现MYSQL读写分离

基于mycat实现MysqL读写分离

完成主从复制的配置

/* 主节点:192.168.47.101  从节点:192.168.47.102 */ /*mycat为同一网段客户端*/
/* 修改主节点基础配置文件 */  /* */
[MysqLd]
server-id=101
log-bin

/*重启服务 */
#systemctl restart mariadb

/*创建从节点的账号 */

 CREATE USER 'xie'@'192.168.47.102' IDENTIFIED BY '123456';
 grant replication slave on *.* to xie@'192.168.47.102';


/*创建mycat*/ 能操作的账号

MysqL> create database mycat;
MysqL>GRANT ALL ON *.* TO 'root'@'192.168.8.10' IDENTIFIED BY '123456' WITH
GRANT OPTION;
MysqL> flush privileges;

 /* 查看二进制日志位置*/
 show master status ;

+----------------------+----------+--------------+------------------+
| File                 | Position | binlog_Do_DB | binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000001 |      729 |              |                  |
+----------------------+----------+--------------+------------------+


 /*从节点 */

/* 修改主节点基础配置文件 */  /* */
[MysqLd]
server-id=102
read-only=on
relay_log=/data/relay-log 
#log-bin

/*重启服务 */
#systemctl restart mariadb


/*创建从属性 */

CHANGE MASTER TO MASTER_HOST='192.168.47.101',
MASTER_USER='xie', MASTER_PASSWORD='123456', MASTER_PORT=3306,
MASTER_LOG_FILE='localhost-bin.000001', MASTER_LOG_POS=729;

/* 开启从复制 */

start slave ;


/* 查看开启详情 */
show slave status \G

...
Slave_IO_Running: Yes
Slave_sql_Running: Yes
...

/* 出现可忽略的错误解决方法 */
/*修改全局变量*/
stop slave;
sql_slave_skip_counter = 数量;
start slave;
/*修改配置文件 填入错误id 或者all*/
[MysqLd]
slave_skip_errors=1007|ALL

/*下载安装mycat*/

yum -y install java
/*确认安装成功*/
java -version

/*安装wget*/
yum -y install wget

/*wget mycat包*/
wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-
linux.tar.gz
/*创建安装目录*/
mkdir /apps
/*解压到安装目录*/
tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /app
/* 环境变量 */
echo 'export PATH=/apps/mycat/bin:$PATH' /etc/profile.d/mycat.sh
. /etc/profile.d/mycat.sh


/*修改配置文件*/
vim /app/mycat/conf/server.xml
<user name="root"> /*连接Mycat的用户名*/
<property name="password">123456</property> /*连接Mycat的密码*/



/*修改分离策略*/
vim /app/mycat/conf/schema.xml

balance="1"
<datanode name="dn1" dataHost="localhost1" database="mycat" />
<writeHost host="host1" url="192.168.47.101:3306" user="root" password="123456">
<readHost host="host2" url="192.168.47.102:3306" user="root" password="123456" />
</writeHost>


/*开启并查看是否成功*/

mycat start
cat /app/mycat/logs/wrapper.log | grep successfully 



/*连接测试*/

MysqL -uroot -pmagedu -h127.0.0.1 -P8066 -DTESTDB
MysqL> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB | //只能看一个虚拟数据库
+----------+
MysqL> use TESTDB;
MysqL> create table t1(id int);
MysqL> select @@server_id;

/*查看数据库的日志,发现修改在主服务器,读取在从服务器*/

set global general_log=on;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐