Ape Creation Call for Papers | Artículo de 10 000 caracteres para obtener la implementación y el uso de la base de datos MySQL en la empresa

Directorio de artículos

Instalación binaria de mysql y separación de lectura y escritura de mycat

hola ~ Estimados fanáticos, el contenido de esta publicación de blog presenta principalmente la implementación relevante de un caso de almacenamiento de datos de proyecto en una empresa.

Muchos amigos creen que todos implementarán e instalarán mysql cuando estén aprendiendo Linux. Pero, de hecho, msyql generalmente no se usa solo. Para este proyecto, se combina con mycat para separar la lectura y la escritura. A través de este intercambio, espero compartir con todos ustedes.

1. Ambiente de aprendizaje

nombre de la CPU IP configurar
Maestro 192.168.61.152 8 núcleos, memoria 16G, disco 200G
esclavo 192.168.61.153 8 núcleos, memoria 16G, disco 200G

2. Inicializar el entorno

2.1 Desactivar selinux y cortafuegos

[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

2.2 Modificar el nombre de host

[root@localhost ~]# hostnamectl set-hostname mysql_master

[root@localhost ~]# hostnamectl set-hostname mysql_slave

2.3 Configuración de la resolución de nombres de dominio

[root@localhost ~]# vim /etc/hosts 新增集群域名解析
192.168.61.152 mysql_master
192.168.61.153 mysql_slave

inserte la descripción de la imagen aquí

2.4 Sincronización de tiempo

[root@localhost ~]# yum install chrony

[root@localhost ~]# vim /etc/chrony.conf
server mysql_master iburst
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

注:注释所有server项,在下面新增server mysql_master iburst

[root@localhost ~]# systemctl enable chronyd.service
[root@localhost ~]# systemctl restart chronyd.service
[root@localhost ~]# chronyc sources

inserte la descripción de la imagen aquí

3. instalación mysql

3.1 Servidor de carga de paquetes binarios

分别上传至:
192.168.61.152的/root/下
192.168.61.153的/root/下

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

3.2 Descomprimir a /home

[root@localhost ~]# tar zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /home

inserte la descripción de la imagen aquí

3.3 Borrar el entorno del sistema

[root@localhost ~]# rpm -qa |grep mariadb
[root@localhost ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

3.4 Crear usuario mysql

[root@localhost ~]# useradd -s /sbin/nologin -M mysql

inserte la descripción de la imagen aquí

3.5 Crear un directorio de datos y otorgar permisos

[root@localhost ~]# mkdir -p /home/mysql/data 			#数据目录
[root@localhost ~]# mkdir -p /home/mysql/logs 			#日志目录
[root@localhost ~]# touch /home/mysql/logs/error.log    #创建日志文件
[root@localhost ~]# mkdir -p /home/mysql/backup 			#备份目录
[root@localhost ~]# chown mysql:mysql -R /home/mysql 	#赋予权限 

3.6 Configurar el archivo my.cnf

[root@localhost mysql]# cat /etc/my.cnf 
[mysql]
socket=/home/mysql/mysql.sock
# set mysql client default chararter
default-character-set=utf8

[mysqld]
socket=/home/mysql/mysql.sock
# set mysql server port  
port = 3306 # 默认是3306,如果这里发现3306已经被占用,可以更改
# set mysql install base dir
basedir=/home/mysql
# set the data store dir
datadir=/home/mysql/data/
pid-file=/home/mysql/mysql.pid
# set the number of allow max connnection
max_connections=2048	#最大连接数
# set server charactre default encoding
character-set-server=utf8
# the storage engine
default-storage-engine=INNODB
# 设置MySQL对表名等不区分大小写
lower_case_table_names=1
max_allowed_packet=200M
explicit_defaults_for_timestamp=true
#阻止过多尝试失败的客户端以防止暴力破解密码的情况,与性能并无太大的关系
max_connect_errors=30
#此参数确定数据日志文件的大小,以M为单位,根据数据更新频率调整。
innodb_log_file_size=50
#指定大小的内存来缓冲数据和索引,最大可以把该值设置成物理内存的80%
innodb_buffer_pool_size=10G
key_buffer_size=16M
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-bin=/home/mysql/logs/mysql-bin #开启binlog日志
binlog-format=ROW #选择row模式
expire_logs_days=30 #日志的保存天数
#错误日志存放地址
log-error = /home/mysql/logs/error.log
#开启slow日志
slow_query_log = ON
slow_query_log_file = /home/mysql/logs/slow.log
long_query_time = 20
log_queries_not_using_indexes
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
innodb_file_per_table=1
[mysql.server]
user=mysql
basedir=/home/mysql
#可以防止出现插入中文报错;如果此时不生效,可以强制在创建表的时候指定使用utf8的编码集 
[client]
default-character-set = utf8

3.7 Inicializar la base de datos

[root@localhost ~]# /home/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/

3.8 iniciar mysql

先将mysql.server放置到/etc/init.d/mysql中
[root@localhost ~]# cp /home/mysql/support-files/mysql.server /etc/init.d/mysql
启动
[root@localhost ~]# /etc/init.d/mysql restart

inserte la descripción de la imagen aquí

3.9 Configurar variables de entorno

[root@localhost ~]# vim /etc/profile 修改末尾添加两行
export PATH=$PATH:/home/mysql/support-files
export PATH=$PATH:/home/mysql/bin
[root@localhost ~]# source /etc/profile

inserte la descripción de la imagen aquí

3.10 Configurar contraseña

首先登录mysql
mysql 回车

inserte la descripción de la imagen aquí

root本地设置密码
mysql> SET PASSWORD = PASSWORD('123456');
mysql> FLUSH PRIVILEGES; 

inserte la descripción de la imagen aquí

3.11 Crear un nuevo usuario remoto

mysql> grant all on *.* to deploy@'%' identified by '123456';

inserte la descripción de la imagen aquí

3.12 Crear un nuevo usuario de consulta

#创建只能查询的用户
mysql> grant select on zhihui.* to query@'%' identified by '123456';

inserte la descripción de la imagen aquí

3.13 Consulta de permisos

#查询用户权限
mysql> use mysql
Database changed
mysql> select user,host from user;

3.14 Configurar el arranque

[root@localhost ~]# chkconfig --add mysql
[root@localhost ~]# chkconfig --level 345 mysql on
[root@localhost ~]# chkconfig --list

inserte la descripción de la imagen aquí

3.15 Configuración del cortafuegos

(1) 向防火墙添加 mysql 端口: 
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
(2) 刷新防火墙规则: 
[root@localhost ~]# firewall-cmd --reload
(3) 验证端口,查询防火墙开放端口: 
[root@localhost ~]# firewall-cmd  --list-port

3.16 Usar nacicat para vincular la prueba

inserte la descripción de la imagen aquí

3.17 instalación de mysql_slave

部署mysql_slave需要重复执行上面指令
注:slave的my.cnf中的server-id=2,该参数不要和master的一致。

连接slave_192.168.61.153数据库

inserte la descripción de la imagen aquí

4. Base de datos maestra y esclava

4.1 Preparativos

确认事项,如下:
1.尽量保持主服务器和从服务器的服务版本一致
2.关闭iptables,关闭selinux,保证时间的一致
3.设置主机名(方便区分主从)
4.master端开启binlog日志功能
5.主服务器正常的情况下,从服务器永远不要写入
6.主与从服务器的server id 不能相同
7.mysql_master_192.168.61.152
8.mysql_slave_192.168.61.153

4.2 Trabajo de sincronización de datos

将主库master中的库数据导入从库中
主库执行:
[root@mysql_master home]# ln -s /home/mysql/mysql.sock /tmp/
[root@mysql_master home]# mysqldump -uroot -p --all-databases >> /home/mysql/backup/all.sql
[root@mysql_master home]# scp /home/mysql/backup/all.sql 192.168.61.153:/home/mysql/backup/

inserte la descripción de la imagen aquí

4.3 Autorizar la biblioteca esclava

主库给从库授权
主库执行
mysql> grant replication slave on *.* to 'slave'@'192.168.61.153' identified by '123456';

注:授权从库192.168.61.153使用slave用户,密码123456访问主库的数据

inserte la descripción de la imagen aquí

从库登录测试
[root@mysql_slave mysql]# mysql -uslave -p123456 -h 192.168.61.152
mysql> show databases;

inserte la descripción de la imagen aquí

4.4 Configurar la biblioteca principal

修改配置文件
[root@master ~]# vim /etc/my.cnf
[mysqld]
innodb_file_per_table=1
server_id=1 	#id号

inserte la descripción de la imagen aquí

注释:每个主机都需要有id号 ,范围是1-65535,是什么数字都可以,但需要保证主从不冲突

生成新的日志文件
[root@mysql_master ~]# cd /home/mysql/logs/
[root@mysql_master logs]# rm -rf mysql-bin.*
[root@mysql_master logs]# /etc/init.d/mysql restart
[root@mysql_master logs]# ls mysql-bin.*
mysql-bin.000001  mysql-bin.index

查看日志位置和状态
mysql> show binlog events\G
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 154 	从154开始的
Binlog_Do_DB: 
Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

inserte la descripción de la imagen aquí

4.5 Configurar la biblioteca esclava

修改配置文件,从库执行
[root@mysql_slave ~]# vim /etc/my.cnf
[mysqld]
server-id=2
[root@mysql_slave ~]# /etc/init.d/mysql restart

查看slave状态
[root@mysql_slave ~]# mysql -uroot -p123456
mysql> show slave status\G;
Empty set (0.00 sec)

4.6 Sincronización maestro-esclavo

从库上执行

配置主从同步
[root@mysql_slave ~]# mysql -uroot -p123456
mysql> change master to
master_host='192.124.16.76',
master_user='slave',
master_password='123456',
master_port=3306, 
master_log_file='mysql-bin.000001',
master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.50 sec)

启动从服务器的角色
mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.61.152	主库地址
Master_User: slave	同步用户
Master_Port: 3306		同步端口
Connect_Retry: 60 重试时间
Master_Log_File: mysql-bin.000001 日志文件
Read_Master_Log_Pos: 154 日志位置字符偏移量
Relay_Log_File: mysql_slave-relay-bin.000002 中继日志
Relay_Log_Pos: 320 中继日志记录到哪里了
Relay_Master_Log_File: mysql-bin.000001 日志文件
Slave_IO_Running: Yes 两个进程都正常
Slave_SQL_Running: Yes Yes就是读中继日志了
Replicate_Do_DB: 
Replicate_Ignore_DB: 
Replicate_Do_Table: 
Replicate_Ignore_Table: 
Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
Last_Errno: 0
Last_Error: 
Skip_Counter: 0
Exec_Master_Log_Pos: 120
Relay_Log_Space: 454
Until_Condition: None
Until_Log_File: 
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File: 
Master_SSL_CA_Path: 
Master_SSL_Cert: 
Master_SSL_Cipher: 
Master_SSL_Key: 
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error: 
Last_SQL_Errno: 0
Last_SQL_Error: 
Replicate_Ignore_Server_Ids: 
Master_Server_Id: 1
Master_UUID: e7955f48-f699-11de-b03d-6cf049c2f465
Master_Info_File: /usr/local/mysql/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind: 
Last_IO_Error_Timestamp: 
Last_SQL_Error_Timestamp: 
Master_SSL_Crl: 
Master_SSL_Crlpath: 
Retrieved_Gtid_Set: 
Executed_Gtid_Set: 
Auto_Position: 0
1 row in set (0.00 sec)

4.7 Prueba de sincronización

主服务器建库建表,主库执行
mysql> create database kkk;
mysql> use kkk
mysql> create table t1(id int);
mysql> insert into t1 values(10000);
mysql> flush logs;

从服务器查看效果
mysql> use kkk
mysql> select * from t1;
+-------+
| id |
+-------+
| 10000 |
+-------+
1 row in set (0.00 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.61.152
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql_slave-relay-bin.000004
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000002	#第2个日志了
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 627
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: 33786cf9-e55c-11ec-8d84-000c29ada541
             Master_Info_File: /home/mysql/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

4.8 Copia de seguridad de datos

# 值得注意的是:
AB复制并不意味着可以不用备份,因为如果master上删除了一个库,slave上会跟着删掉,所以备份还是需要的

使用mysqldump在从服务器上锁表备份,(选择执行下面参数)
mysql> flush tables with read lock;
[root@master ~]# mysqldump --all-databases > all.sql
[root@master ~]# mysql -e 'show master status' 
mysql> unlock tables;  //解锁表

5. Separación de lectura y escritura Mycat

5.1 Antecedentes

随着互联网行业的蓬勃发展,应用程序的数据量也越来越大,我们仅仅通过单点数据库架构已经无法满足业务的需要,经常会出现查询缓慢,严重甚至宕机的情况。很多小伙伴可能会想,我们可以对 SQL 语句进行优化、MySQL 数据库优化、甚至采用主从高可用架构是不是就可以解决这个问题了呢?

答案是否定的,SQL 语句优化以及数据库层级的优化虽然可以加快 SQL 的查询速度,但是无法解决数据库的故障切换问题。那是不是主从高可用架构就可以解决这个问题呢,也不行,主从高可用架构虽然能解决数据库服务器的故障切换功能,但是无法解决数据库压力过大问题……

5.2 Introducción

Un gran clúster de base de datos completamente de código abierto para el desarrollo de aplicaciones empresariales
• Una base de datos mejorada que admite transacciones, ACID y puede reemplazar a MySQL
• Una base de datos de nivel empresarial que puede considerarse como un clúster de MySQL para reemplazar costosos clústeres de Oracle
• Una memoria caché de fusión Nuevo SQL Server para tecnología, tecnología NoSQL, big data HDFS
• Una nueva generación de productos de base de datos de nivel empresarial que combina bases de datos tradicionales y nuevos almacenes de datos distribuidos
• Un novedoso producto de middleware de base de datos

La llamada separación de lectura y escritura es la separación forzada de operaciones de lectura y escritura de datos a través de código o middleware de base de datos de terceros. Las operaciones de escritura se distribuyen a todos los servidores maestros en la arquitectura maestro-esclavo (multi-maestro y multi-esclavo) (se puede lograr una conmutación por error automática), y las operaciones de lectura se distribuyen a todos los servidores esclavos en la arquitectura maestro-esclavo y equilibrio de carga. de operaciones de lectura se realiza.

5.3 Propósito de la separación de lectura y escritura

实际工作中,数据库服务器的读操作操作明显要大于写操作,大概比例为 7:3。我们采用读写分离架构就是将读写业务分配到不同的服务器上,让服务器做特定的操作,不需要不断的切换工作模式,从而提高数据库服务器的工作效率。

5.3 Instalar mycat

5.3.1 Resumen del entorno de instalación

ip nodo Observación
192.168.61.152 nodo 01 Maestro
192.168.61.153 nodo 02 esclavo
192.168.61.151 mi gato Configuración mínima: 8 núcleos, memoria 16G, disco 100G

5.3.2 Instalar jdk

  • Sube el paquete de instalación de jdk
  • configurar jdk
1. 解压缩
[root@localhost ~]# hostnamectl set-hostname mycat
[root@localhost ~]# tar zxvf jdk-8u141-linux-x64.tar.gz -C /usr/local/

2. 配置环境变量
[root@mycat ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_141
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

[root@mycat ~]# source /etc/profile

3.配置域名
[root@mycat ~]# vim /etc/hosts	#添加
192.168.61.152 mysql_master
192.168.61.153 mysql_slave
192.168.61.151 mycat

4.测试jdk 安装是否成功
[root@mycat ~]# java -version

5.3.2 Implementar mycat

  • crear usuario
[root@mycat ~]# useradd -s /sbin/nologin -M mycat
  • Descomprimir el paquete de instalación
[root@mycat ~]# tar zxvf Mycat-server-1.6.7.6-release-20210930213049-linux.tar.gz -C /home/
  • Autorizar
[root@mycat ~]# chown -R mycat.mycat /home/mycat/
  • Configurar variables de entorno
.[root@mycat ~]# vim /etc/profile
export PATH=/home/mycat/bin:$PATH

inserte la descripción de la imagen aquí

[root@mycat ~]# source /etc/profile

[root@mycat mycat]# ll
总用量 12
drwxr-xr-x. 2 mycat mycat  190 6月   6 15:59 bin
drwxrwxrwx. 2 mycat mycat    6 4月  15 2020 catlet
drwxrwxrwx. 4 mycat mycat 4096 6月   6 15:59 conf
drwxr-xr-x. 2 mycat mycat 4096 6月   6 15:59 lib
drwxrwxrwx. 2 mycat mycat    6 9月  16 2021 logs
-rwxrwxrwx. 1 mycat mycat  227 9月  30 2021 version.txt
注释:
conf:java写的配置文件大多以xml为结尾
conf/schema.xml:虚拟数据库对应后端真实数据的ip和真正数据库的名字
conf/server.xml:mycat呈现给应用程序的虚拟库名、连接的用户名和密码
logs/wrapper.log:mycat的日志文件
  • iniciar mi gato
[root@mycat ~]# /home/mycat/bin/mycat restart
Starting Mycat-server... 

inserte la descripción de la imagen aquí
Puerto 8066: la aplicación y el desarrollador escriben código para conectarse al puerto mycat8066

5.3.3 Configurar mycat para lograr la separación de lectura y escritura

  • respaldo
[root@mycat mycat]# cd /home/mycat/
[root@mycat mycat]# cp conf/server.xml{,.bak}
[root@mycat mycat]# cp conf/schema.xml{,.bak}
  • Modificar servidor.xml
# 注:需要修改的地方标成紫色
# 修改底部管理员用户和只读用户信息及密码,配置schemas
[root@mycat ~]# vim /usr/local/mycat/conf/server.xml
<user name="mycatadmin" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">kkk,app</property>

</user>

<user name="mycatuser">
<property name="password">123456</property>
<property name="schemas">kkk,app</property>
<property name="readOnly">true</property>
</user>
# 退出并保存

inserte la descripción de la imagen aquí

  • Modificar esquema.xml
定义虚拟数据库,虚拟数据库关联数据节点,数据节点中定义真实数据库的名字;同时dataNode还需要关联数据主机,数据主机中分别定义了真正后端数据库的端口号和ip以及连接数据库的用户名和密码
# 替换为以下内容 # 其中192.168.61.152为写主机(主数据库)IP,192.168.61.153为读主机(从数据库)IP。

[root@mycat ~]# 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="kkk" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<schema name="app" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2">
</schema>

<dataNode name="dn1" dataHost="mycat" database="kkk" />
<dataNode name="dn2" dataHost="mycat" database="app" />
<dataHost name="mycat" maxCon="2048" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="mysql_master" url="192.168.61.152:3306" user="deploy" password="123456">
<readHost host="mysql_slave" url="192.168.61.153:3306" user="deploy" password="123456" />
</writeHost>
</dataHost>

</mycat:schema>

# 退出并保存

inserte la descripción de la imagen aquí

  • Introducción al algoritmo
balance 属性
1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。
2. balance="1", 全部的 readHost 与 stand by writeHost备用写主机参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 
互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
4. balance="2", 所有读操作都随机的在 writeHost、readhost 上分发。
5. balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。

writeType 属性
1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后以切换后的为准.
2. writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
  • reiniciar mi gato
root@mycat ~]# /home/mycat/bin/mycat restart
[root@mycat ~]# netstat -antp | grep -E "8066|9066"

inserte la descripción de la imagen aquí

5.3.4 Prueba de separación de lectura y escritura

[root@mysql_master ~]# mysql -u mycatadmin -p -h 192.168.61.151 -P 8066
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-mycat-1.6.7.6-release-20210930213049 MyCat Server (OpenCloudDB)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+----------+
| DATABASE |
+----------+
| app      |
| kkk      |
+----------+
2 rows in set (0.01 sec)
mysql> use app;
mysql> create table student1( id int,name varchar(50),sex enum('male','female'),age int); //创建表

mysql> insert into student1 values (1,'tom','male',23), (2,'jack','male',21),(3,'alice','female',19); //写入数据

mysql> select name,sex from student1; //查看数据
  • análisis de registro
在主服务器192.168.61.152上查看数据
[root@mysql_master ~]# tail -f  /home/mysql/data/mysql_master.log
2022-06-06T14:12:06.334119Z	   18 Query	insert into student1 values (1,'tom','male',23), (2,'jack','male',21),(3,'alice','female',19)

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42313749/article/details/126634107
Recomendado
Clasificación