美文网首页
Mysql读写分离

Mysql读写分离

作者: 心水Diana | 来源:发表于2018-12-03 16:12 被阅读0次
    常见读写分离方式
    • MySQL-Proxy读写分离
    • Amoeba读写分离
    • Mycat读写分离
    • 基于程序读写分离
    MySQL Proxy下载
    • 基于MySQL的主从复制确保数据的一致性,减轻数据库master的压力,让操作 到slave 执行,操作到master执行
    # 64位
    wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
    # 32位
    wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz
    
    
    安装配置
    • 读写分离示例图
    读写分离示例图.png
    tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz 
    
    mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
    
    useradd -r mysqlproxy
    
    vim /etc/profile
    # 配置环境变量
    export  PATH=$PATH:/usr/local/mysql-proxy/bin/
    
    # master 执行
    grant all on *.* to admin@'%' identified by 'admin';
    
    
    启动MySQL-Proxy
    mysql-proxy --daemon --log-level=debug --user=mysqlproxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="10.8.30.152:3306" --proxy-read-only-backend-addresses="10.8.30.81:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"
    
    验证查看
    netstat -tnl
    
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:4040            0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:4041            0.0.0.0:*               LISTEN     
      # 4040 与4041 端口正常
      # 4040为proxy代理端口用于WEB应用连接,4041位管理端口用于SA或者DBA管理
      # 中间件运行成功
    
    
    • 验证
    mysql -h(mysql-proxy服务器ip) -uadmin -padmin -P 4040 -e 'create database dbtest; '
    在 master  slave 查看是否有被创建。
    
    mysql -h(mysql-proxy服务器ip) -uadmin -padmin -P 4040 -e 'select host,password,user from mysql.user'
    
    
    • 登录MySQL proxy
    mysql  -h(mysql-proxy服务器ip)  -uadmin  -padmin  -P 4041
      进入服务端 执行
      SELECT * FROM backends;
      #state 状态为up
      #type  分别为rw ro
    
    ipaSIK.png
    参数解释
    --help-all                           :获取全部帮助信息;
    --proxy-address=host:port            :代理服务监听的地址和端口,默认为4040;
    --admin-address=host:port            :管理模块监听的地址和端口,默认为4041;
    --proxy-backend-addresses=host:port   :后端mysql服务器的地址和端口;
    --proxy-read-only-backend-addresses=host:port :后端只读mysql服务器的地址和端口;
    --proxy-lua-script=file_name          :完成mysql代理功能的Lua脚本;
    --daemon                         :以守护进程模式启动mysql-proxy;
    --keepalive                          :在mysql-proxy崩溃时尝试重启之;
    --log-file=/path/to/log_file_name        :日志文件名称;
    --log-level=level                    :日志级别;
    --log-use-syslog                     :基于syslog记录日志;
    --plugins=plugin                     :在mysql-proxy启动时加载的插件;
    --user=user_name                 :运行mysql-proxy进程的用户;
    --defaults-file=/path/to/conf_file_name :默认使用的配置文件路径,其配置段使用[mysql-proxy]标识;
    --proxy-skip-profiling               :禁用profile;
    --pid-file=/path/to/pid_file_name        :进程文件名;
    
    

    相关文章

      网友评论

          本文标题:Mysql读写分离

          本文链接:https://www.haomeiwen.com/subject/negycqtx.html