mysql+mycat实现主从复制、读写分离

一、主从复制

mysql:5.6 mycat1.6
主服务器:47.98.231.33 root root
从服务器:119.23.226.141 root root

1.主服务器my.cnf配置:

在`[mysqld]`加入如下配置
#主从复制的数据库的名字
binlog-do-db=qianbagongshe
#忽略mysql数据库(一般mysql不需要库不需要同步)
binlog-ignore-db=mysql
##启用二进制日志
log-bin=mysql-bin
##服务器唯一ID,一般取IP最后一段
server-id=33

重启mysql:service mysqld restart

2.在主服务器的mysql创建同步的用户,并赋予权限

mysql>GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';

注意:一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
刷新权限:mysql> FLUSH PRIVILEGES;
查看master状态:mysql> show master status;

mysql> show master status;
+------------------+----------+---------------+------------------+
| File             | Position | Binlog_Do_DB  | Binlog_Ignore_DB |
+------------------+----------+---------------+------------------+
| mysql-bin.000002 |   431859 | qianbagongshe | mysql            |
+------------------+----------+---------------+------------------+
1 row in set (0.01 sec)

3.修改从服务器的my.cnf配置文件

在从服务器的[mysqld]段添加

server-id=141

配置从服务器:

mysql>change master to master_host='47.98.231.33',master_port=3306,master_user='backup',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=431859 ;

这里的master_host对应主服务器的ip,master_port对应主服务器的mysql端口,master_user对应主服务器允许远程连接的用户,master_password对应远程用户的密码,maste_log_file对应在主服务器生成的二进制文件名,master_log_pos对应上述通过show master status查询到的Position 栏的数字
开启 从服务器的复制模式start slave (关闭为stop slave
查看从服务器的的主从状态:show slave status
如下:

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 47.98.231.31
                  Master_User: backup
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 431859
               Relay_Log_File: iZwz9e4q6vwsdzhpxw4th0Z-relay-bin.000030
                Relay_Log_Pos: 40802
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes  #此处必须为yes
            Slave_SQL_Running: Yes #此处必须为yes

*** 注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。***
测试:在主服务器添加一条记录,在从服务器也会添加一条记录
mysql+mycat实现主从复制、读写分离_第1张图片
mysql+mycat实现主从复制、读写分离_第2张图片

二、安装mycat

1.安装jdk

下载地址:jdk下载
上传至/usr/lib/jvm目录下(mkdir -p /usr/lib/jvm)
解压:tar -zxvf jdk-11.0.1_linux-x64_bin.tar.gz
修改/etc/profile 在末尾添加如下几行代码:

export JAVA_HOME=/usr/lib/jvm/jdk-11.0.1
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export  PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile

查看java版本java -version

2.安装mycat及配置

1.下载地址:mycat下载
2.下载好后直接解压:tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3.cd ./mycat目录
注:目录结构可参考:https://blog.csdn.net/YuYunTan/article/details/53196367
4.修改配置文件vim ./mycat/conf/schema.xml





        
        
        
        
                show slave status
                
                
                        
                        
                
                
             
        


详细配置介绍可参考博客:https://www.cnblogs.com/fxwl/p/7990906.html和https://blog.csdn.net/sds15732622190/article/details/72190120
配置server.xml:

 80         
 81                 123456
 82                 TESTDB
 83 
 84                 
 85                 
 93         
 94 
 95         
 96                 user
 97                 TESTDB
 98                 true
 99         

3.测试

1.vim conf/log4j2.xml文件 开启debug

        

            
            

        

进行读的操作:查看mycat.og日志后如下图所示:
在这里插入图片描述

你可能感兴趣的:(PHP,mysql,mycat)