部署MySQL主从同步(mycat读写分离) 1.1环境准备 主机名 IP 系统版本/MYSQL版本 角色 Qing4 192.168.1.5 Centos7.5/5.7.26 Master Qing5 192.168.1.6 Centos7.5/5.7.26 slave Qing6 192.168.1.7 Centos7.5/5.7.26 Qing 1.2配置主数据库服务器qing4 mysql> create database qing1; mysql> use qing1; mysql> create table test1(id int,name char(10)); mysql> insert into test1 values(1,‘ln’),(2,‘fb’); 1.3创建主从复制的授权用户: mysql> grant replication slave on . to slave@‘192.168.1.%’ identified by ‘123456’; 刷新一下权限:mysql> flush privileges; 2配置主机上的my.cnf文件 在 vim /etc/my.cnf 文件下添加 [mysqld] …………… //省略部分内容 log-bin=/data/mysql/log/mysql-bin-master #启用二进制日志 server-id=1 #数据库服务器ID标识 binlog-do-db=HA #可以被从服务器复制的库, 即二进制需要同步的数据库名 2.2重启MySQL服务并查看master 状态 systemctl restart mysqld mysql> show master status; //显示主服务器的当前binlog文件及事件位置 2.3查看二进制日志 mysql> show binlog events\G 3.到出数据库 因为咱们先创建的qing1库和test1表,才开启的binlog,所以binlog没有记录之前的sql语句,复制前要保证同步的数据库一致 mysqldump -uroot -p123456 -B HA > ha.sql #可以导出数据库 将导出的数据库传给从服务器 scp ha.sql root@192.168.1.12:/root 4.配置从数据库服务器qing5 4.1两台数据库服务器MySQL版本要一致,查看一下 mysql> show variables like ‘%version%’; #qing4 mysql> show variables like ‘%version%’; #qing5 4.2测试连接到主服务器是否成功 mysql -uslave -p123456 -h 192.168.1.5 mysql> show databases; #只有复制的权限, 是看不到其他库的。正常 4.3导入服务器,和主数据库服务器保持一致 mysql -uroot -p123456 < ha.sql 4.4修改从服务器配置文件 从服务器没必要开启bin-log日志 4.5关闭MySQL并修改/etc/my.cnf文件 systemctl stop mysqld vim /etc/my.cnf server-id = 2 #从服务器ID号,不要和主ID相同 ,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。这些ID值能唯一识别复制服务器群集中的每个服务器实例 relay-log=/data/mysql/log/relay-log-bin #中继日志文件的路径名称 relay-log-index=/data/mysql/log/slave-relay-bin.index #中继日志索引文件的路径名称 4.6重启服务器 systemctl start mysqld 4.7配置MySQL数据库从服务 mysql -uroot -p123456 mysql> stop slave; #停止slave mysql>change master to master_host=‘192.168.1.5’,master_user=‘slave’,master_password=‘123456’,master_log_file=‘mysql-bin-master.000001’,master_log_pos=154; mysql> start slave; #启动slave mysql> show slave status\G #查看slave的状态 4.8在主服务器上查看binlog dump线程 qing4 mysql -uroot -p123456 mysql> show processlist \G #查看服务器连接信息 4.9在从服务器上查看I/O线程和SQL线程 mysql> show processlist \G #2是I/O线程,3是SQL线程 在另一个从上面添加log-slave-updates=1 搭建mycat 1.1三台机器分别修改主机名,并做hosts绑定 vim /etc/hosts 192.168.1.7 mycat-node qing6 192.168.1.5 qing4 192.168.1.6 qing5 2.1将mycat软件包上传到qing6上 RZ上传 ls查看
2.2将此文件解压到/usr/local/下 tar -zxvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -C /usr/local/ 2.3去到mycat目录下 cd /usr/local/mycat/ ls查看一下cd回去 2.4再将jdk上传 RZ上传 ls查看
2.5将此文件解压到/usr/local/下 tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/ 2.6配置JDK环境变量 vim /etc/profile #在文件最后加入一下行 JAVA_HOME=/usr/local/jdk1.8.0_171 PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAH?OME/bin:PATH CLASSPATH=
J
A
V
A
H
O
M
E
/
j
r
e
/
l
i
b
/
e
x
t
:
JAVA_HOME/jre/lib/ext:
JAVAH?OME/jre/lib/ext:JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH source /etc/profile #使环境变量生效 2.7查看Java环境 java –version
2.8配置mycat环境变量 将mycat/bin/的所有软链接到/local/bin/下 ln -s /usr/local/mycat/bin/* /usr/local/bin/ 2.9配置server.Xml文件 去到conf目录下 cd /usr/local/mycat/conf/ 将server.xml文件备份一下 cp server.xml server.xml.bak 配置文件 vim sercer.xml 设置mycat的管理员用户,用来登陆mycat
设置mycat的普通用户,只有只读权限
3配置schema.xml文件,搭建集群 3.1去到conf目录下 cd /usr/local/mycat/conf/ cp schema.xml schema.xml.bak vim schema.xml
4给所有mysql root远程登陆权限 4.1在所有的mysql服务器上执行:mysql> grant all on . to root@‘192.168.1.%’ identified by ‘123456’; 刷新一下:mysql>flush privileges; 4.2启动mycat服务 mycat console #先使用console进行检测 4.启动一下 [root@qing6 conf]# mycat start 4.2检查端口8066 netstat -antup | grep 8066 如果没有端口,查看日志 tail /usr/local/mycat/logs/mycat.log 4.3使用root账号登陆测试 mysql -uroot -p123456 -P 8066 -h 192.168.1.7
|