- 连接器和 API
- 使用 MySQL 连接器连接 TiDB
- 使用 MySQL C API 连接 TiDB
- 使用 MySQL 第三方 API 连接 TiDB
- TiDB 支持的连接器版本
连接器和 API
数据库连接器为客户端提供了连接数据库服务端的方式,APIs 提供了使用 MySQL 协议和资源的底层接口。无论是连接器还是 API,都可以用来在不同的语言和环境内连接服务器并执行 sql 语句,包括 odbc、java(jdbc)、Perl、Python、PHP、Ruby 和 C。
TiDB 兼容 MySQL(5.6、5.7) 的所有连接器和 API,包括:
- MySQL Connector/C
- MySQL Connector/C++
- MySQL Connector/J
- MySQL Connector/Net
- MySQL Connector/ODBC
- MySQL Connector/Python
- MySQL C API
- MySQL PHP API
- MySQL Perl API
- MySQL Python API
- MySQL Ruby APIs
- MySQL Tcl API
- MySQL Eiffel Wrapper
- Mysql Go API
使用 MySQL 连接器连接 TiDB
Oracle 官方提供了以下 API , TiDB 可以兼容所有这些 API。
- MySQL Connector/C:C 语言的客户端库,是 libmysqlclient 的替代品
- MySQL Connector/C++:C++ 语言的客户端库
- MySQL Connector/J:Java 语言的客户端库,基于标准 JDBC 接口
- MySQL Connector/Net:.Net 语言的客户端库,MySQL for Visual Studio使用这个库,支持 Microsoft Visual Studio 2012,2013,2015和2017版本
- MySQL Connector/ODBC:标准的 ODBC 接口,支持 Windows,Unix 和 OS X
- MySQL Connector/Python:Python 语言的客户端包,和 Python DB API version 2.0 一致
使用 MySQL C API 连接 TiDB
如果使用 C 语言程序直接连接 TiDB,可以直接链接 libmysqlclient 库,使用 MySQL 的 C API,这是最主要的一种 C 语言连接方式,被各种客户端和 API 广泛使用,包括 Connector/C。
使用 MySQL 第三方 API 连接 TiDB
第三方 API 非 Oracle 官方提供,下表列出了常用的第三方 API:
| Environment | API | Type | Notes |
|---|---|---|---|
| Ada | GNU Ada MySQL Bindings | libmysqlclient |
See MySQL Bindings for GNU Ada |
| C | C API | libmysqlclient |
See Section 27.8, “MySQL C API”. |
| C | Connector/C | Replacement for libmysqlclient |
See MySQL Connector/C Developer Guide. |
| C++ | Connector/C++ | libmysqlclient |
See MySQL Connector/C++ Developer Guide. |
| MySQL++ | libmysqlclient |
See MySQL++ Web site. | |
| MySQL wrapped | libmysqlclient |
See MySQL wrapped. | |
| Go | go-sql-driver | Native Driver | See Mysql Go API |
| Cocoa | MySQL-Cocoa | libmysqlclient |
Compatible with the Objective-C Cocoa environment. Seehttp://mysql-cocoa.sourceforge.net/ |
| D | MySQL for D | libmysqlclient |
See MySQL for D. |
| Eiffel | Eiffel MySQL | libmysqlclient |
See Section 27.14, “MySQL Eiffel Wrapper”. |
| Erlang | erlang-mysql-driver |
libmysqlclient |
See erlang-mysql-driver. |
| Haskell | Haskell MySQL Bindings | Native Driver | See Brian O’Sullivan’s pure Haskell MySQL bindings. |
hsql-mysql |
libmysqlclient |
See MySQL driver for Haskell . | |
| Java/JDBC | Connector/J | Native Driver | See MySQL Connector/J 5.1 Developer Guide. |
| Kaya | MyDB | libmysqlclient |
See MyDB. |
| Lua | LuaSQL | libmysqlclient |
See LuaSQL. |
| .NET/Mono | Connector/Net | Native Driver | See MySQL Connector/Net Developer Guide. |
| Objective Caml | OBjective Caml MySQL Bindings | libmysqlclient |
See MySQL Bindings for Objective Caml. |
| Octave | Database bindings for GNU Octave | libmysqlclient |
See Database bindings for GNU Octave. |
| ODBC | Connector/ODBC | libmysqlclient |
See MySQL Connector/ODBC Developer Guide. |
| Perl | DBI/DBD::mysql |
libmysqlclient |
See Section 27.10, “MySQL Perl API”. |
Net::MySQL |
Native Driver | See Net::MySQL at CPAN |
|
| PHP | mysql, ext/mysqlinterface (deprecated) |
libmysqlclient |
See Original MySQL API. |
mysqli, ext/mysqliinterface |
libmysqlclient |
See MySQL Improved Extension. | |
PDO_MYSQL |
libmysqlclient |
See MySQL Functions (PDO_MYSQL). | |
| PDO mysqlnd | Native Driver | ||
| Python | Connector/Python | Native Driver | See MySQL Connector/Python Developer Guide. |
| Python | Connector/Python C Extension | libmysqlclient |
See MySQL Connector/Python Developer Guide. |
| MySQLdb | libmysqlclient |
See Section 27.11, “MySQL Python API”. | |
| Ruby | MySQL/Ruby | libmysqlclient |
Uses libmysqlclient. See Section 27.12.1, “The MySQL/Ruby API”. |
| Ruby/MySQL | Native Driver | See Section 27.12.2, “The Ruby/MySQL API”. | |
| Scheme | Myscsh |
libmysqlclient |
See Myscsh. |
| SPL | sql_mysql |
libmysqlclient |
See sql_mysql for SPL. |
| Tcl | MySQLtcl | libmysqlclient |
See Section 27.13, “MySQL Tcl API”. |
TiDB 支持的连接器版本
| Connector | Connector version |
|---|---|
| Connector/C | 6.1.0 GA |
| Connector/C++ | 1.0.5 GA |
| Connector/J | 5.1.8 |
| Connector/Net | 6.9.9 GA |
| Connector/Net | 6.8.8 GA |
| Connector/ODBC | 5.1 |
| Connector/ODBC | 3.51 (Unicode not supported) |
| Connector/Python | 2.0 |
| Connector/Python | 1.2 |
