MySQL安装-读写分离(7)

环境
1主 1从 1MySQL-proxy
192.168.1.71 MySQL1.test.com MySQL1
192.168.1.72 MySQL2.test.com MySQL2
192.168.1.73 MySQL3.test.com MySQL3
主从服务器上安装MySQL
[root@MySQL1 ~]# yum install -y MySQL MySQL-server MySQL-devel
MySQL安装-读写分离(7)
启动MySQL 服务
主从服务器上执行
[root@MySQL1 ~]# /etc/init.d/MySQLd start
MySQL安装-读写分离(7)
设置主从配置文件
配置文件在/etc/my.cnf,设置完配置必须重新启动MySQL服务

[MySQLd]
datadir=/var/lib/MySQL
socket=/var/lib/MySQL/MySQL.sock
user=MySQL
symbolic-links=0

log-bin=MySQL-bin
server-id= 1
auto_increment_offset=1
auto_increment_increment=2
[MySQLd_safe]
log-error=/var/log/MySQLd.log
pid-file=/var/run/MySQLd/MySQLd.pid
MySQL安装-读写分离(7)

[MySQLd]
datadir=/var/lib/MySQL
socket=/var/lib/MySQL/MySQL.sock
user=MySQL
symbolic-links=0

log-bin=MySQL-bin
server-id= 2
auto_increment_offset=2
auto_increment_increment=2

[MySQLd_safe]
log-error=/var/log/MySQLd.log
pid-file=/var/run/MySQLd/MySQLd.pid
master-connect-retry=60
replicate-do-db=all
skip-name-resolve
MySQL安装-读写分离(7)
登录主MySQL服务器,建立访问账号
[root@MySQL1 ~]# MySQL -uroot -p
MySQL> create database testing;
MySQL> show master status;
MySQL安装-读写分离(7)
MySQL> GRANT REPLICATION SLAVE ON . TO ‘tongbu‘@‘%‘ IDENTIFIED BY ‘P@ssw0rd‘;
MySQL安装-读写分离(7)
bin-log文件
MySQL> show master status;
MySQL安装-读写分离(7)
从库是从bin-log 1055之后同步
MySQL-bin.000001 文件位置在/var/lib/MySQL/
[root@MySQLcluster1 ~]# ll /var/lib/MySQL
MySQL安装-读写分离(7)
查看bin-log文件内容
[root@MySQLcluster1 MySQL]# MySQLbinlog MySQL-bin.000001 |more
Bin-log文件中都是一些执行的步骤
记录了时间段及编号段内的执行的内容
MySQL安装-读写分离(7)
设置从数据库,执行change master

  1. MySQL>CHANGE MASTER TO
    1. MASTER_HOST=‘X.X.X.X‘,
    2. MASTER_USER=‘user‘,
    3. MASTER_PASSWORD=‘password‘,
    4. MASTER_PORT=3306,
    5. MASTER_LOG_FILE=‘MySQL-bin.000001‘,
    6. MASTER_LOG_POS=98,
    7. MASTER_CONNECT_RETRY=10;
      MASTER_HOST:主服务器的IP。
      MASTER_USER:配置主服务器时建立的用户名
      MASTER_PASSWORD:用户密码
      MASTER_PORT:主服务器MySQL端口,如果未曾修改,默认即可。

MySQL> change master to master_host=‘192.168.1.71‘,
-> master_user=‘tongbu‘,
-> master_password=‘P@ssw0rd‘,
-> master_log_file=‘MySQL-bin.000001‘,
-> master_log_pos=1055;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
change master to master_host=‘192.168.1.71‘,master_user=‘tongbu‘,master_password=‘P@ssw0rd‘,master_log_file=‘MySQL-bin.000001‘,MASTER_LOG_POS=1055;
MySQL安装-读写分离(7)
启动slave服务
MySQL> start slave;
MySQL安装-读写分离(7)
在主数据库上添加数据库,从库查看状态
MySQL安装-读写分离(7)
从数据库执行show slave status\G 并查看数据库
MySQL> show slave status\G
MySQL安装-读写分离(7)
遇到问题
1 查看日志
2 查看防火墙
3 查看selinux
[root@MySQL1 MySQL]# chkconfig iptables off
[root@MySQL1 MySQL]# /etc/init.d/iptables stop
MySQL安装-读写分离(7)
查看relay-log日志
[root@MySQL2 ~]# cd /var/lib/MySQL/
[root@MySQL2 MySQL]# ll
MySQL安装-读写分离(7)
[root@MySQL2 MySQL]# MySQLbinlog MySQLd-relay-bin.000002
MySQL安装-读写分离(7)
master.info文件
Master.info文件在slave机器上,主要记录了同步账号和密码
[root@MySQL2 MySQL]# cat master.info
MySQL安装-读写分离(7)
下载MySQL-proxy安装
在中间件的机器上执行以下步骤
下载
MySQL安装-读写分离(7)
http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/

http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/MySQL-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
MySQL安装-读写分离(7)
解压到指定文件夹
[root@MySQL3 ~]# tar zxvf MySQL-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
[root@MySQL3 ~]# mv MySQL-proxy-0.8.5-linux-el6-x86-64bit /var/lib/MySQL-proxy
[root@MySQL3 MySQL-proxy]# pwd
[root@MySQL3 MySQL-proxy]# ls
MySQL安装-读写分离(7)
安装环境软件
[root@MySQL3 ~]# yum -y install gcc gcc-c++ autoconf automake zlib libxml ncurses-devel libmcrypt libtool flex pkgconfig libevent glib*
MySQL安装-读写分离(7)
添加环境变量
[root@MySQL3 MySQL-proxy]# ls
bin include lib libexec licenses share
[root@MySQL3 MySQL-proxy]# pwd
/var/lib/MySQL-proxy
[root@MySQL3 MySQL-proxy]# echo "export PATH=$PATH:/var/lib/MySQL-proxy/bin/" >> /etc/profile
[root@MySQL3 MySQL-proxy]# source /etc/profile
[root@MySQL3 MySQL-proxy]# echo $PATH
MySQL安装-读写分离(7)
启动MySQL-proxy
MySQL proxy 命令简介
–help-all ———— 用于获取全部帮助信息
–proxy-address=host:port ———— 代理服务监听的地址和端口(缺省是4040)
–admin-address=host:port ———— 指定管理主机地址和端口(缺省是4041)
–proxy-backend-addresses=host:port ——后端MySQL服务器的地址和端口(主服务器)
简写:-b
–proxy-read-only-backend-addresses=host:port ———— 后端只读MySQL服务器的地址和端口(从服务器)简写:-r
–proxy-lua-script=file ———— 指定MySQL代理功能的Lua脚本文件 –daemon ———— 以守护进程模式启动MySQL-proxy
–defaults-file=/path/to/conf_file_name ———— 默认使用的配置文件路径
–log-file=/path/to/log_file_name ———— 日志文件名称
–log-level=level ———— 日志级别
–user=user_name ———— 运行MySQL-proxy进程的用户
–admin-username=user ———— 指定登录到MySQL-proxy管理界面的用户名 –admin-password=pass ———— 指定登录到MySQL-proxy管理界面的用户密码
–admin-lua-script=script-file ————管理模块的lua脚本文件路径(创建管理接口)
–plugins=admin ———— 加载管理插件
可以是用MySQL-proxy –help 查看帮助
[root@MySQL3 ~]# MySQL-proxy --daemon --log-level=debug --user=root --keepalive --log-file=/var/log/MySQL-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.1.71:3306" --proxy-read-only-backend-addresses="192.168.1.72:3306" --proxy-lua-script="/var/lib/MySQL-proxy/lib/MySQL-proxy/lua/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/var/lib/MySQL-proxy/lib/MySQL-proxy/lua/admin.lua"
查看启动端口没有问题
MySQL安装-读写分离(7)
查看是否正确
登录数据库远程查看
[root@MySQL2 ~]# MySQL -h192.168.1.73 -uadmin -padmin -P4041
MySQL> select * from backends;
MySQL安装-读写分离(7)

MySQL安装-读写分离(7)

上一篇:windows下64位MySQL8的安装


下一篇:MySQL安装-主从复制(5)