Linux:Centos7.9
MySQL:mysql8.0.12
客户端 10.0.0.10
主机 10.0.0.40
从机 10.0.0.50
都关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
创表创库
mysql -uroot -p1
create database HA;
use HA;
create table T1(id int,name varchar(20));
配置主从
vim /etc/my.cnf
添加
server-id=1
log-bin=mysql-bin-master
下面两个主从都要一样
binlog-do-db=HA
binlog-ignore-db=mysql
修改auto.cnf
vim /usr/local/mysql/data/auto.cnf
修改UUID 服务器都不能一样
重启mysql
systemctl restart mysql
都创建同步账户
CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '1';
授权slave同步账号
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
加载
flush privileges;
show master status;
###
如
change master to master_host='10.0.0.40',master_user='slave',master_password='1',master_port=3306,master_log_file='mysql-bin-master.000001',master_log_pos=807;
###
start slave;
show slave status\G;
在mycat客户端上
安装JDK
1) 上传jdk安装包
2) 解压缩到/usr/local
[root@mycat ~]# tar zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/
3) 重命名为jdk8
cd /usr/local/
mv jdk1.8.0_181 jdk8
4) 修改/etc/profile添加
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
export JAVA_HOME=/usr/local/jdk8
export PATH=$PATH:$JAVA_HOME/bin
5) 生效source /etc/profile
6) 测试java -version
安装MYCAT
1) 上传MYCAT安装包
2) 解压缩到/usr/local
tar zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz -C /usr/local
3) 修改/etc/profile添加
vim /etc/profile
export MYCAT_HOME=/usr/local/mycat
4) 生效source /etc/profile
5) 修改
vim /etc/hosts
mycat服务器ip mycat.com
主MySQL的ip master.com
从MySQL的ip slave.com
6) ping mycat.com
7) 修改conf/server.xml
vim /usr/local/mycat/conf/server.xml
账号 密码 数据库名
<user name="root" defaultAccount="true">
<property name="password">1</property>
<property name="schemas">HA</property>
<property name="defaultSchema">HA</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">HA</property>
<property name="readOnly">true</property>
<property name="defaultSchema">HA</property>
</user>
8) 修改conf/schema.xml
vim /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!-- 修改为你的数据库 -->
<schema name="HA" checkSQLschema="true" sqlMaxLimit="100" dataNode='dn1'>
</schema>
<!-- 修改为你的数据库 -->
<dataNode name="dn1" dataHost="host1" database="HA" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- 指定写主机 -->
<writeHost host="hostM1" url="10.0.0.10:3306" user="root"
password="1">
<!-- 指定读主机 -->
<readHost host="hostS1" url="10.0.0.40:3306" user="root" password="1" />
</writeHost>
</dataHost>
</mycat:schema>
9) 到bin执行./mycat start 或 console
cd /usr/local/mycat/bin
./mycat console
三、客户端测试
启用mycat
mysql -uroot -p1 -h10.0.0.50 -P8066
报登录错误,原因mycat1.6不支持mysql8
解决方案:
1)把mysql驱动包8.0.12复制到usr/local/mycat/lib下
mv mysql-connector-java-8.0.12.jar /usr/local/mycat/lib
2) 设置权限777
cd /usr/local/mycat/lib
chmod 777 mysql-connector-java-8.0.12.jar
3)把原有的5.1.35驱动包修改名称为xx.jar.bak
mv mysql-connector-java-5.1.35.jar mysql-connector-java-5.1.35.jar.bak
4) 修改/etc/my.cnf
vim /etc/my.cnf
[mysqld]加
sql_mode=""
default_authentication_plugin=mysql_native_password
5) 重启mysql
systemctl restart mysql
6)打开conf/log4j2.xml
修改日志级别为debug ,取消注释 Console
<asyncRoot level="debug" includeLocation="true">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile"/>
</asyncRoot>
7)关闭重新启动mycat
./mycat stop
./mycat console
8) 重新开一个窗口登录mycat
mysql -uroot -p1 -h10.0.0.50 -P8066 --default_auth=mysql_native_password
在mysql里分别执行更新和查询操作,看前面窗口的日志
2241

被折叠的 条评论
为什么被折叠?



