环境: 192.168.88.8 master
192.168.88.18 slave
192.168.88.28 Mycat
1.搭建主从
#master、slave
[root@C8 ~]# yum install mysql-server -y
#master上的my.cnf
[root@C8 ~]# vim /etc/my.cnf
[mysqld]
server-id = 8
log-bin
#slave上的my.cnf
[mysqld]
server-id = 18
#master、slave
[root@C8 ~]# systemctl enable --now mysqld
#master 创建复制用户、授权
mysql> create user 'repl'@'192.168.88.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to 'repl'@'192.168.88.%';
Query OK, 0 rows affected (0.00 sec)
mysql> show master logs;
+---------------+-----------+-----------+
| Log_name | File_size | Encrypted |
+---------------+-----------+-----------+
| C8-bin.000001 | 179 | No |
| C8-bin.000002 | 681 | No |
+---------------+-----------+-----------+
2 rows in set (0.00 sec)
#slave
mysql> CHANGE MASTER TO MASTER_HOST='192.168.88.8',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='C8-bin.000002',
-> MASTER_LOG_POS=681;
Query OK, 0 rows affected, 8 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: 192.168.88.8
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: C8-bin.000002
Read_Master_Log_Pos: 681
Relay_Log_File: C18-relay-bin.000002
Relay_Log_Pos: 321
Relay_Master_Log_File: C8-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
.....
#master
mysql> create user root@'192.168.88.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to root@'192.168.88.%';
Query OK, 0 rows affected (0.00 sec)
2.搭建Mycat
[root@C28 ~]# yum -y install java
[root@C28 ~]# wget http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
[root@C28 ~]# mkdir /apps
[root@C28 ~]# tar zxf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz -C /apps
[root@C28 ~]# echo 'PATH=/apps/mycat/bin:$PATH' > /etc/profile.d/mycat.sh
[root@C28 ~]# . /etc/profile.d/mycat.sh
#修改配置文件
vim server.xml
![alt](https://uploadfiles.nowcoder.com/images/20211029/498282651_1635495934421/D2B5CA33BD970F64A6301FA75AE2EB22)
44 <property name="serverPort">3306</property> <property name="managerPort">9066</property>
45 <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
46 <property name="dataNodeIdleCheckPeriod">300000</property>
47 <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property>
![alt](https://uploadfiles.nowcoder.com/images/20211029/498282651_1635496027897/D2B5CA33BD970F64A6301FA75AE2EB22)
107 <user name="wswj" defaultAccount="true">
108 <property name="password">123456</property>
109 <property name="schemas">TESTDB</property>
110 <property name="defaultSchema">TESTDB</property>
[root@C28 conf]# vim schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1" >
</schema>
<dataNode name="dn1" dataHost="localhost1" database="hellodb" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="0" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="192.168.88.8:3306" user="root"
password="123456">
<readHost host="host2" url="192.168.88.18:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
#启动服务
[root@C28 ~]# mycat start
Starting Mycat-server...
[root@C28 ~]# tail /apps/mycat/logs/wrapper.log
STATUS | wrapper | 2021/10/24 13:10:13 | --> Wrapper Started as Daemon
STATUS | wrapper | 2021/10/24 13:10:14 | Launching a JVM...
INFO | jvm 1 | 2021/10/24 13:10:24 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO | jvm 1 | 2021/10/24 13:10:24 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
INFO | jvm 1 | 2021/10/24 13:10:24 |
INFO | jvm 1 | 2021/10/24 13:10:36 | MyCAT Server startup successfully. see logs in logs/mycat.log
[root@C28 ~]# yum install mysql -y
[root@C28 ~]# mysql -uroot -p123456 -h 192.168.88.28 -P8066
mysql> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB |
+----------+
1 row in set (0.00 sec)
mysql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
| 18 |
+-------------+
1 row in set (0.03 sec)