平凯数据库 7.1.8-5.1 Release Notes

发版日期:2025 年 2 月 14 日

平凯数据库版本:7.1.8-5.1

Open-Core 版本:8.5.1

平凯数据库 v7.1.8-5.1 为长期支持版本 (Long-Term Support Release, LTS),基于上游 TiDB v8.5.1 (Long-Term Support Release, LTS) 版本。相比平凯数据库 v7.1.1, Open-Core 的更新请参见对应的 Release Notes:

企业版功能更新

SQL 功能

  • Signal

    • 平凯数据库 v7.1.8-5 支持 Signal 功能,用于自定义“返回”错误。
    • 更多信息,请参考 SIGNAL
  • SELECT ... INTO

    • 平凯数据库 v7.1.8-5 版本开始支持 SELECT ... INTO 功能,用于将查询结果写入到变量中。当前仅支持 varlist 在 from 之前场景。
    • 更多信息,请参考 SELECT ... INTO
  • 支持 GB18030-2022 字符集增强

    • 平凯数据库 v7.1.8-5 版本进一步增强 GB18030-2022 支持,增加支持 GB18030-2022 字符数据导入。
    • 更多信息,请参考 GB18030-2022 字符集

可观测性

  • 支持 GET DIAGNOSTICS 功能

    • 平凯数据库 v7.1.8-5 支持 GET DIAGNOSTICS 功能,用于获取当前执行环境信息,包括有关先前执行的SQL语句(GET DIAGNOSTICS语句除外)的信息。
    • 更多信息,请参考 GET DIAGNOSTICS

错误修复

平凯数据库 v7.1.8-5 企业特性的问题修复。

序号Issue描述
1IBJ1RXDumpling 无法正确识别S3地址
2IBJIH0SEM开启状态下,使用select count(*) 可以访问无权限系统表
3IBKI8B使用 gb18030_bin 出现数据索引不一致

如需了解完整的问题修复列表,请同时参考 Open-Core 的 Release notes。

兼容性变更

下面是针对平凯数据库企业特性的兼容变更。 如需了解完整的兼容性变更,请同时参考 Open-Core 的 Release notes.

用户历史登录信息查询系统表结构变更

用户历史登录信息查询功能在 v7.1.1-0 版本 GA,v7.1.1-0 版本对应的系统表结构如下:

mysql> desc mysql.login_history; +---------------+---------------------+------+------+-------------------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------------------+------+------+-------------------+-------+ | Time | timestamp | YES | | CURRENT_TIMESTAMP | | | Host | char(255) | NO | | | | | User | char(32) | NO | MUL | | | | DB | char(64) | NO | | | | | Connection_id | bigint(21) unsigned | NO | MUL | 0 | | | Result | char(16) | NO | | | | | Client_host | char(255) | NO | | | | | Detail | text | YES | | NULL | | +---------------+---------------------+------+------+-------------------+-------+ 8 rows in set (0.00 sec)

在 7.1.1-0 版本中,Host 记录的是用户登录的 tidb-server 服务对应的 host,但 MySQL 系定义的用户标准是 User@Host,当前记录方式未记录用户的完整信息,在 v7.1.8-5 对系统表进行如下改造:

mysql> desc mysql.login_history; +---------------+---------------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------------------+------+------+---------+-------+ | Time | datetime(6) | NO | MUL | NULL | | | Server_host | char(255) | NO | | | | | User | char(32) | NO | MUL | | | | User_host | char(255) | NO | | | | | DB | char(64) | NO | | | | | Connection_id | bigint(21) unsigned | NO | | 0 | | | Result | char(16) | NO | | | | | Client_host | char(255) | NO | | | | | Detail | text | YES | | NULL | | +---------------+---------------------+------+------+---------+-------+ 9 rows in set (0.00 sec)

描述:

  • Server_host:tidb-server 服务所在 host;
  • User_host:同 MySQL 用户的 host。

具体升级兼容性变更详见平凯数据库系统表变更及升级兼容性说明

用户历史登录信息查询数据清理功能变更

用户历史登录信息查询功能在 v7.1.1-0 版本 GA,v7.1.1-0 版本表定义如下:

mysql> show create table mysql.login_history; +---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | login_history | CREATE TABLE `login_history` ( `Time` timestamp DEFAULT CURRENT_TIMESTAMP, `Host` char(255) NOT NULL DEFAULT '', `User` char(32) NOT NULL DEFAULT '', `DB` char(64) NOT NULL DEFAULT '', `Connection_id` bigint(21) unsigned NOT NULL DEFAULT '0', `Result` char(16) NOT NULL DEFAULT '', `Client_host` char(255) NOT NULL DEFAULT '', `Detail` text DEFAULT NULL, KEY `idx_user` (`User`), KEY `idx_session_id` (`Connection_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![ttl] TTL=`time` + INTERVAL 3 MONTH */ /*T![ttl] TTL_ENABLE='ON' */ /*T![ttl] TTL_JOB_INTERVAL='1h' */ | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)

用户历史登录信息查询系统表数据清理功能借助于开源版本 TTL 功能进行自动清理,但是测试发现从不支持 TTL 版本的集群升级到该版本,会出现 TTL 属性丢失,造成数据清理功能不生效。在 v7.1.8-5 版本中表定义修改成如下:

mysql> show create table mysql.login_history; +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | login_history | CREATE TABLE `login_history` ( `Time` datetime(6) NOT NULL, `Server_host` char(255) NOT NULL DEFAULT '', `User` char(32) NOT NULL DEFAULT '', `User_host` char(255) NOT NULL DEFAULT '', `DB` char(64) NOT NULL DEFAULT '', `Connection_id` bigint(21) unsigned NOT NULL DEFAULT '0', `Result` char(16) NOT NULL DEFAULT '', `Client_host` char(255) NOT NULL DEFAULT '', `Detail` text DEFAULT NULL, KEY `idx_user` (`User`,`User_host`,`Result`,`Time`), KEY `idx_time` (`Time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin | +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)