文章目录
昆仑数据库的计算节点基于 PostgreSQL 研发,因而直接可以支持PostgreSQL 的连接协议,所以使用 JDBC、ODBC 等通用的数据库连接协议以及使用各类编程语言的 PostgreSQL 专有的连接库的软件都可以连接到昆仑数据库集群并且正常工作。
为了让原本使用 MySQL 的应用程序可以不需要修改也不需要重新编译就能连接并且正常使用昆仑数据库,我们开发了昆仑数据库的 MySQL 连接协议,本文对此协议实现做一个简介。
总的来说,对于 KunlunBase 来说,连接协议就是客户端与 KunlunBase 服务器通信的管道,MySQL 和 PostgreSQL 协议就是两种形状不同的管道,而其中传输的 SQL 语句和查询结果则本质上是相同的。
也就是说 KunlunBase 支持的任何 SQL 语法和功能都可以在 MySQL 和PostgreSQL 这两种连接协议中的任何一种连接中传输到服务器集群中正常执行并收到其结果。
例如可以在 MySQL 连接中发送 PostgreSQL 私有语法 SQL 或者标准 SQL 语句,包括 prepared statement 语法、存储过程语法、DDL语法等,并且得到遵循MySQL协议的结果,从而可以使用 MySQL 客户端库完成结果读取;也可以 在PostgreSQL 连接中发送 KunlunBase 支持的任何 MySQL 私有语法(例如prepared statement、DML等)的 SQL语句或者标准 SQL 语句,并且得到遵循 PostgreSQL 的结果,从而可以使用 PostgreSQL 客户端库完成结果读取。
昆仑数据库MySQL协议支持的功能
昆仑数据库MySQL协议支持所有常用功能,包括文本和二进制协议,连接验证(只支持mysql_native_password),数据压缩,prepared statement,字符集&#x