暂无图片
暂无图片
6
暂无图片
暂无图片
暂无图片

金仓数据库新版 MySQL 兼容模式开箱体验

原创 严少安 2025-08-06
496

2025 年金仓数据库产品体验官第一期「SQL Server 兼容深度体验」已经正式结束!26 位技术爱好者带来了 27 篇分享。

第二期产品体验官【MySQL 兼容深度体验】已开启,详情戳:

2025金仓数据库产品体验官第二期【金仓MySQL兼容】招募发车

往期文章回顾

正文开始前先回顾一下往期文章。

KES(MySQL 兼容模式)安装

KES 单机安装过程相对简单,之前已经多次介绍,这里不再赘述。在安装过程中,用户需要选择数据库模式,这里选择 MySQL:

[shawnyan@kes cdrom]$ ./setup.sh -i console
...
Database Mode
-------------

Please enter database mode.

  ->1- MySQL

ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT: 

安装完成后,启动数据库服务:

[shawnyan@kes ~]$ sys_ctl start
waiting for server to start....2025-07-30 03:28:55.258 CST [9204] LOG:  config the real archive_command string as soon as possible to archive WAL files
2025-07-30 03:28:55.269 CST [9204] LOG:  sepapower extension initialized
2025-07-30 03:28:55.284 CST [9204] LOG:  starting KingbaseES V009R003C011 <-- 版本号为 KES V9R3C11
2025-07-30 03:28:55.284 CST [9204] LOG:  listening on IPv4 address "0.0.0.0", port 54321
2025-07-30 03:28:55.284 CST [9204] LOG:  listening on IPv6 address "::", port 54321
2025-07-30 03:28:55.285 CST [9204] LOG:  listening on Unix socket "/tmp/.s.KINGBASE.54321"
2025-07-30 03:28:55.339 CST [9204] LOG:  redirecting log output to logging collector process
2025-07-30 03:28:55.339 CST [9204] HINT:  Future log output will appear in directory "sys_log".
 done
server started

通过命令行连接数据库,查看数据库模式:

[shawnyan@kes ~]$ ksql -U system
Licesen Type: SALES-企业版.
Type "help" for help.

kingbase=# \l
                               List of databases
   Name    | Owner  | Encoding |   Collate   |    Ctype    | Access privileges 
-----------+--------+----------+-------------+-------------+-------------------
 kingbase  | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 security  | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system        +
           |        |          |             |             | system=CTc/system
 template1 | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system        +
           |        |          |             |             | system=CTc/system
 test      | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
(5 rows)

kingbase=# show database_mode ;
 database_mode 
---------------
 mysql
(1 row)

至此,金仓数据库 MySQL 兼容模式安装完成。

SQL 兼容 – LOAD DATA INFILE

KES V9R3C11 支持 LOAD DATA INFILE 命令,用户可以方便地将文件中的数据加载到指定表中,实现数据还原。

首先,在 MySQL 中创建一个测试表 film,并导入测试数据:

[shawnyan@kes ~]$ mysql -uroot mytest < film-data.sql
[shawnyan@kes ~]$ mysql -uroot mytest -e 'select count(*) from film'
+----------+
| count(*) |
+----------+
|     1000 |
+----------+

将数据从 MySQL 导出为 CSV 格式。

[shawnyan@kes ~]$ mysql -uroot -p mytest -e "select * into outfile '/tmp/film.csv' from film"
Enter password: 
[shawnyan@kes ~]$ sudo wc -l /tmp/film.csv 
1000 /tmp/film.csv

接下来,将导出的文件 film.csv 上传到金仓数据库服务器的相应目录下。

然后连接到金仓数据库,使用 LOAD DATA INFILE 语句将数据导入到 KES 的表中:

load data infile '/tmp/film.csv' into table mysql.film;

kmysqlloaddata.png

SQL 兼容 – WITH ROLLUP

KES 新版 MySQL 兼容模式支持 SQL 查询语句中的 WITH ROLLUP 子句,这一功能为用户提供了强大的查询分组统计能力。

在数据分析和报表生成过程中,WITH ROLLUP 可以帮助用户快速生成多级汇总结果,满足复杂的统计需求。

假设有一个销售数据表 sales,包含字段 region(地区)、product(产品)和 amount(销售额)。使用以下 SQL 查询语句:

SELECT region, product, SUM(amount) AS total_amount
FROM sales
GROUP BY region, product WITH ROLLUP;

该查询将生成每个地区、每个产品的销售额汇总,同时还会生成每个地区的总销售额以及所有地区的总销售额。这种多级汇总功能在处理复杂数据报表时非常实用,能够显著提高数据分析的效率。

使用原生 MySQL 驱动连接 KES

金仓数据库新版 MySQL 兼容模式提供了对原生 MySQL 驱动的支持,这意味着用户可以使用现有的 MySQL 客户端工具无缝连接到金仓数据库。为了实现这一功能,需要进行一些简单的配置。

[shawnyan@kes data]$ grep 'port = ' kingbase.conf 
port = 54321				# (change requires restart)
extension_protocol_port = 3308
[shawnyan@kes data]$ 

完成配置后,启动数据库服务,并检查端口监听情况:

[shawnyan@kes ~]$ ss -antpl | grep kingbase
LISTEN 0      244          0.0.0.0:3308       0.0.0.0:*    users:(("kingbase",pid=8716,fd=17))
LISTEN 0      244          0.0.0.0:54321      0.0.0.0:*    users:(("kingbase",pid=8716,fd=15))
LISTEN 0      244             [::]:3308          [::]:*    users:(("kingbase",pid=8716,fd=18))
LISTEN 0      244             [::]:54321         [::]:*    users:(("kingbase",pid=8716,fd=16))
[shawnyan@kes ~]$ 

此时,用户可以使用原生 MySQL 客户端工具连接到金仓数据库的 3308 端口,并进行相关操作。

使用 Navicat 连接金仓数据库

Navicat 是一款广泛使用的数据库管理工具,支持多种数据库系统。从 Navicat 17.3 开始支持金仓数据库,用户可以通过 Navicat 连接金仓数据库并进行管理。

knavi.png

使用 MySQL 驱动连接金仓数据库

原先需要使用金仓数据库驱动连接 KES,现在可以直接使用 MySQL 驱动连接,只需修改驱动字符串即可。

kmysqljava.png

总结

本期内容先到这里,MySQL 兼容模式功能目前已经比较完善,达到批量投产上线水平,但是 MySQL 协议支持特性刚出,还有待加强。

社区邀请

诚邀您一起参与金仓产品体验官活动,如遇到问题可以来金仓论坛发帖。

注册链接(注册时邀请人输入框可填:老K):

https://bbs.kingbase.com.cn/register

福利放送

又到福利抽奖环节,欢迎大家级级参与!

具体参见公众号:少安事务所

方式一

转发本文到朋友圈或群聊,在本文留言并附上转发截图,即可参与抽奖。

一等奖(1名):金仓社区定制双肩包

二等奖(2名):金仓社区定制文化衫(白色)

方式二

发送消息:金仓 到公众号,获取抽奖链接

奖品: 金仓数据库 KingbaseES DBA 实践(共三本)

Have a nice day ~


🌻 往期精彩 ▼

– / END / –

👉 这里也可以找到我

  • ITPUB:https://blog.itpub.net/31492144/
  • OSCHINA:https://my.oschina.net/mysqloffice
  • TiDB 专栏:https://tidb.net/u/ShawnYan/post/all
  • PGFans:https://pgfans.cn/user/home?userId=1193
  • 墨天轮:https://www.modb.pro/u/3351
  • IF Club:https://ifclub.com.cn/userCenter/1897171302338498562

👉 这里有得聊

如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。
关注微信公众号:少安事务所,后台回复[群],即可看到入口。

如果这篇文章为你带来了灵感或启发,请帮忙『三连』吧,感谢!ღ( ´・ᴗ・` )~

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论