环境: 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)