#基础配置
datadir=/data/datafile
socket=/var/lib/mysql/mysql.sock
log-error=/data/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character_set_server=utf8
#允许任意IP访问
bind-address = 0.0.0.0
#是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
#symbolic-lin...
分类目录归档:MySQL
MyCAT2 入门到实战(四)
10. 【掌握】MyCAT2分库分表
10.1 分库分表的原理
一个数据库由很多表构造成,每个表对应不同的业务,垂直切分是指按业务将表进行分类,分布到不同的数据库上面,这样也就将数据或者说压力分担到不同的库上面。
10.1.1 垂直切分
基于表或字段划分,表结构不同。我们有单库的分表,也有多库的分表,如下图所示
注意:有紧密关联关系的表应该在一个库里,相互没有关联关系的表可以分到不同的库里面
换句话说:就是我们很多库合在一起组成一个完整的数据库系统(这个不同到集群哦)。
10.1.2 水平切分
基...
MyCAT2 入门到实战(三)
6. 【熟悉】MySQL主从搭建
因为MyCAT只能路由、分发,不能把多个数据库里面的数据进行同步,所以要数据同步必须还要使用MySQL的读写分离,主从复制。
6.1 概述主从介绍
MySQL主从又叫Replication、AB复制。简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步。有这样几个关键点:
1)MySQL主从是基于binlog,主上需开启binlog才能进行主从;
2)主从过程大概有3个步骤;
3)主将更改操作记录到binlog里;
4)从将主...
MyCAT2 入门到实战(二)
4. 【掌握】MyCAT2配置文件介绍
4.1 用户(user)
配置文件位置/usr/local/mycat/conf/users/{用户名}.user.json
。这个配置文件主要是用来配置MyCAT的登录用户的,也就是我们连接8066这个端口的用户信息。
{
"dialect": "mysql",
"ip": null,
"password": "123456",
&...
MyCAT读写分离
MyCat读写分离
一、读写分离配置
前面我们已经介绍过了mysql的主从同步和mycat的安装及相关配置文件的介绍,现在我们来配置下具体的读写分离
操作。
1.1 创建物理表
我们现在master
库中创建一张t_user
表,因为主从的关系,slave
中也会同步创建该表。
1.1 schema.xml配置
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
&...
MyCat全局主键自增长
面我们介绍了MyCat的分库分表操作,那么同一张表中的数据会被保存在不同的数据库中,那么这就涉及到了主键
维护的问题,此时肯定不能使用单个数据库中id自增的方式来处理了,这时我们就可以通过MyCat中提供的几种增长的方式来实现。
全局主键自增
一、本地文件自增方式
首先我们来看下第一种方式,也就是本地文件自增
方式
1. 修改分片策略
我们原来配置的分片策略crc32slot
是不支持主键自增的,所以我们需要修改为auto-sharding-long
2. 修改server.xml文件
server.xm...
MyCAT 2分库分表
分库分表
一、分片规则介绍
在
rule.xml
中定义了各种myCat支持的分片规则。
- 取模mod-long
- 自然月分片 sharding-by-month
- 按日期(天)分片sharding-by-date
- 按单月小时拆分sharding-by-hour
- 范围约定,提前规划好分片字段某个范围属于哪个分片,auto-sharding-long
- 范围求模分片
- 取模范围约束sharding-by-pattern
- 分片枚举sharding-by-intfile
- 固定分片hash算法
- 截取数字hash解析s...
MySQL编程进阶
MySQL流程控制的语法
存储过程
语法:
创建存储过程
drop procedure if exists [存储过程名] ;
delimiter [结束标记]
create procedure [存储过程名]([参数1], [参数2] ...)
begin
[存储过程体(一组合法的sql语句)]
end [结束标记]
delimiter ;
参数,其格式为 [in|out|inout] parameter_name type
in #表示输入参数;
out #表示输出参数;
inou...
MySQL变量
变量
系统变量
系统变量分类
系统变量分为全局系统变量(需要添加global关键字)以及会话系统变量(需要添加session关键字),有时也把全局系统变量简称为全局变量,有时也把会话系统变量称为local变量。如果不写,默认会话级别。静态变量(在 MySQL 服务实例运行期间它们的值不能使用 set 动态修改)属于特殊的全局系统变量。
-
全局系统变量针对于所有会话(连接)有效,但不能跨重启
-
会话系统变量仅针对于当前会话(连接)有效。会话期间,当前会话对某个会话系统变量值的修改,不会影响其他会话同...
MySQL安装补充
Ubuntu22.04安装并配置MySQL
1.安装MySQL
# a.运行以下命令,安装MySQL
sudo apt -y install mysql-server
# b.运行以下命令,查看MySQL版本。
mysql -V
mysql Ver 8.0.39-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
2.启动MySQL服务
sudo systemctl start mysql
3.设置开机启动MySQL
sudo systemctl...