首页 > 数据库 >mycat读写分离、mysql主从的安装

mycat读写分离、mysql主从的安装

时间:2022-08-21 22:46:30浏览次数:77  
标签:mycat master mysql home root 主从 localhost

数据库安装手册

目录

数据库安装手册

1、数据库安装

1.1环境准备

1.1.1关闭selinux

1.1.2修改主机名

1.1.3域名解析

1.1.3时间同步

1.2 mysql安装

1.2.1二进制包上传至服务器

1.2.2解压二进制包至/home/下

1.2.3清除系统环境

1.2.4创建mysql用户

1.2.5创建数据目录并赋予权限

1.2.6手动配置my.cnf

1.2.7初始化数据库

1.2.8启动mysql

1.2.9配置环境变量

1.2.10配置密码

1.2.11新建远程用户

1.2.12新建查询用户

1.2.13设置开机启动

1.2.14防火墙设置

1.2.15使用navicat连接测试

1.2.16 mysql_slave安装

2、数据库主从

2.1准备工作

2.2数据同步

2.3授权从库

2.4配置主库

2.5配置从库

2.6主从同步

2.7同步测试

2.8数据备份

3、 mycat读写分离

3.1背景

3.2读写分离的目的

3.3什么是读写分离

3.4. Mycat简介

3.5环境描述

3.6安装mycat

3.6.1安装jdk

3.6.2部署mycat

3.6.3配置MyCAT实现读写分离

3.6.4测试读写分离

1、数据库安装

1.1环境准备

系统环境:centos7.9

ip地址:192.168.61.152、192.168.61.153

最低配置:8核、16G内存、200G磁盘

1.1.1关闭selinux

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

wps57

1.1.2修改主机名

一台master节点,一台slave节点

192.168.61.152执行:
[root@localhost ~]# hostnamectl set-hostname mysql_master

wps58

192.168.61.153执行:
[root@localhost ~]# hostnamectl set-hostname mysql_slave

wps59

1.1.3域名解析

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

wps60

注:每台主机都需要添加

1.1.3时间同步

mysql_slave同步mysql_master的时间

192.168.61.153执行:

[root@localhost ~]# yum install chrony

wps61
[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

wps62

注:注释所有server项,在下面新增server mysql_master iburst
[root@localhost ~]# systemctl enable chronyd.service
[root@localhost ~]# systemctl restart chronyd.service

[root@localhost ~]# chronyc sources

wps63

注:如图得知mysql_slave时间同步已指向mysql_master

1.2 mysql安装

1.2.1二进制包上传至服务器

分别上传至:

192.168.61.152的/root/下

192.168.61.153的/root/下
wps64

1.2.2解压二进制包至/home/下

[root@localhost ~]# ll /root/ -h

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

wps66

[root@localhost ~]# cd /home && mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql

wps67

1.2.3清除系统环境

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

1.2.4创建mysql用户

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

wps69

1.2.5创建数据目录并赋予权限

[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 #赋予权限

1.2.6手动配置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

1.2.7初始化数据库

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

wps70

注:没有任何输出代表成功

1.2.8启动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
查看进程
[root@localhost ~]# ps -ef|grep mysql
wps71

1.2.9配置环境变量

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

wps72
保存退出刷新环境变量
[root@localhost ~]# source /etc/profile

wps73

1.2.10配置密码

首先登录mysql
mysql 回车
wps74
root本地设置密码
mysql> SET PASSWORD = PASSWORD('123456');
mysql> FLUSH PRIVILEGES;
wps75

1.2.11新建远程用户

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

1.2.12新建查询用户

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

wps77

#查询用户权限

mysql> use mysql

Database changed

mysql> select user,host from user;

wps78

1.2.13设置开机启动

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

1.2.14防火墙设置

(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

wps80

1.2.15使用navicat连接测试

wps81

1.2.16 mysql_slave安装

部署mysql_slave需要重复执行上面指令

注:slave的my.cnf中的server-id=2,该参数不要和master的一致。

连接slave_192.168.61.153数据库

wps82

2、数据库主从

2.1准备工作

确认事项,如下:
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

2.2数据同步

将主库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/

wps83

从库执行:
[root@mysql_slave mysql]# mysql -uroot -p < /home/mysql/backup/all.sql
mysql> show databases;

wps84

2.3授权从库

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

wps85

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

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

mysql> show databases;
wps86

2.4配置主库

修改配置文件
[root@master ~]# vim /etc/my.cnf
[mysqld]
innodb_file_per_table=1
server_id=1 #id号
wps87
注释:每个主机都需要有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)

wps88

2.5配置从库

修改配置文件,从库执行
[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)

2.6主从同步

从库上执行
配置主从同步
[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)

2.7同步测试

主服务器建库建表,主库执行
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)

2.8数据备份

值得注意的是:
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; //解锁表

3、mycat读写分离

3.1背景

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

wps89

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

wps90

那到底应该怎么办呢?使用我们今天要给大家分享的读写分离技术!

wps91

3.2读写分离的目的

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

3.3什么是读写分离

啥是读写分离?所谓的读写分离就是通过代码或第三方数据库中间件对数据的读写操作进行强制分离。写操作分发到主从架构(多主多从)中的所有 Master 主服务器(可以实现故障自动切换),读操作分发到主从架构中的所有的 Slave 从服务器,并实现读操作的负载均衡。

3.4. Mycat简介

• 一个彻底开源的,面向企业应用开发的大数据库集群
• 支持事务、ACID、可以替代MySQL的加强版数据库
• 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
• 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
• 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
• 一个新颖的数据库中间件产品

3.5环境描述

192.168.61.152 node01 master
192.168.61.153 node02 slave
192.168.61.151 mycat
关闭防火墙、selinux、同步时间,设置主机名,解析主机名

最低配置:8核、16G内存、100G磁盘

3.6安装mycat

3.6.1安装jdk
3.6.1.1、上传jdk

wps92

3.6.1.2、安装mycat运行环境

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

[root@localhost ~]# tar zxvf jdk-8u141-linux-x64.tar.gz -C /usr/local/

3.6.1.3、配置系统变量

[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

wps93

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

[root@mycat ~]# vim /etc/hosts #添加

192.168.61.152 mysql_master

192.168.61.153 mysql_slave

192.168.61.151 mycat

3.6.1.4、查看版本

[root@mycat ~]# java -version

wps94

3.6.2部署mycat
3.6.2.1、创建用户

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

3.6.2.2、解压

[root@mycat ~]# tar zxvf Mycat-server-1.6.7.6-release-20210930213049-linux.tar.gz -C /home/

3.6.2.3、授权

[root@mycat ~]# chown -R mycat.mycat /home/mycat/
wps95

3.6.2.4、环境变量

00001.
[root@mycat ~]# vim /etc/profile
export PATH=/home/mycat/bin:$PATH

wps96
[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的日志文件

3.6.2.5、启动mycat

[root@mycat ~]# /home/mycat/bin/mycat restart
Starting Mycat-server...

wps97
[root@mycat ~]# netstat -antp | grep -E "8066|9066"
wps98

8066端口:应用程序以及开发人员写代码连接的都是mycat8066端口

3.6.3配置MyCAT实现读写分离
3.6.3.1、备份

[root@mycat mycat]# cd /home/mycat/
[root@mycat mycat]# cp conf/server.xml{,.bak}
[root@mycat mycat]# cp conf/schema.xml{,.bak}

3.6.3.2、修改server.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>
# 退出并保存

wps99

3.6.3.3、修改schema.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>
# 退出并保存

wps100

3.6.3.4、算法介绍

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 以后废弃不推荐。

3.6.3.5、重启mycat

[root@mycat ~]# /home/mycat/bin/mycat restart
[root@mycat ~]# netstat -antp | grep -E "8066|9066"
wps101

3.6.4测试读写分离

[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; //查看数据

3.6.4.1、日志分析

在主服务器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)

wps102
在从服务器192.168.61.153.上查看数据
[root@mysql_slave ~]# tail -f  /home/mysql/data/mysql_slave.log
2022-06-06T14:15:32.001896Z 12 Query SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID

wps103

结论:观察日志可以看出insert走的主数据库,select走的从数据库

标签:mycat,master,mysql,home,root,主从,localhost
From: https://www.cnblogs.com/xgsh/p/16611238.html

相关文章

  • MySQL-- NULL值的判断
    前置知识空值即NULL,该值不同于0,也不同于空字符串 字段值是否为空值(NULL)的判断IS[NOT]NULL,其中NOT为可选参数,表示字段值不为空值注意:ISNULL是一个整体,不......
  • CentOS7 安装MySQL教程
    【0】保持网络畅通【1】查看是否已安装MySQLrpm-qa|grepmysql下面是我的操作,可见没有安装MySQL,那么直接进入【2】如果查看出来有东西,可以使用下面命令将其删除(x......
  • 2022-08-18 MySQL常用函数
    MySQL常用函数聚合函数count:计数。count(*)≈count(1)>count(主键)count(*):MySQL对count(*)底层优化,count(0)。count(1)count(主键)count(字段)min:最小值max:最......
  • 2022-08-15 - 初识MySQL
    MySQL数据库数据库数据库,又称为Database,简称DB。数据库就是一个文件集合。顾名思义:是一个存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据,可以很......
  • Qt6.3.1三种方式远程连接阿里云服务器ECS MySQL数据库(ODBC方式、DSN方式、直连方式)
    一、ODBC方式远程连接MySQL数据库voidcreateMySQLConnByODBC(){qDebug()<<"Qt6支持的数据库驱动有:"<<QSqlDatabase::drivers();QSqlDatabasedb=QSqlDat......
  • 【MySQL】MySQL总结
    目录1.数据库1.1数据库本质1.2数据库分类1.3SQL与NoSQL1.4数据库重要概念1.5数据库存储引擎1.5.1定义1.5.2存储引擎1.5.3不同存储引擎之间底层文件的区别2.针对......
  • mysqli_query() 参数调换了和 报错检查写错了
    注意mysqli_query()的参数,第一个参数为连接,第二个参数是查询mysqli_query(mysqli$link,string$query,int$resultmode=MYSQLI_STORE_RESULT):mixed这是错误......
  • 十周周末总结 MySQL的介绍与使用
    python十周周末总结MySQL的介绍与使用MySQL字符编码与配置文件查看数据库的基本信息(用户,字符编码)/swindos下MySQL默认的配置文件my_default.ini修改配置......
  • mysql-6
    目录视图触发器事务MVCC多版本并发控制存储过程内置函数流程控制索引索引底层原理慢查询优化测试索引联合索引视图SQL语句的执行结果是一张虚拟表我们可以基于该表做其......
  • Mysql----初识
    《基本命令》    《连接MYSQL数据库的命令》   《数据库是什么》    ......