连接器和 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 | GNUAdaMySQLBindings | libmysqlclient | SeeMySQLBindingsforGNUAda |
C | CAPI | libmysqlclient | SeeSection27.8,“MySQLCAPI”. |
C | Connector/C | Replacementforlibmysqlclient | SeeMySQLConnector/CDeveloperGuide. |
C++ | Connector/C++ | libmysqlclient | SeeMySQLConnector/C++DeveloperGuide. |
MySQL++ | libmysqlclient | SeeMySQL++Website. | |
MySQLwrapped | libmysqlclient | SeeMySQLwrapped. | |
Go | go-sql-driver | NativeDriver | SeeMysqlGoAPI |
Cocoa | MySQL-Cocoa | libmysqlclient | CompatiblewiththeObjective-CCocoaenvironment.Seehttp://mysql-cocoa.sourceforge.net/ |
D | MySQLforD | libmysqlclient | SeeMySQLforD. |
Eiffel | EiffelMySQL | libmysqlclient | SeeSection27.14,“MySQLEiffelWrapper”. |
Erlang | erlang-mysql-driver | libmysqlclient | Seeerlang-mysql-driver. |
Haskell | HaskellMySQLBindings | NativeDriver | SeeBrianO’Sullivan’spureHaskellMySQLbindings. |
hsql-mysql | libmysqlclient | SeeMySQLdriverforHaskell. | |
Java/JDBC | Connector/J | NativeDriver | SeeMySQLConnector/J5.1DeveloperGuide. |
Kaya | MyDB | libmysqlclient | SeeMyDB. |
Lua | LuaSQL | libmysqlclient | SeeLuaSQL. |
.NET/Mono | Connector/Net | NativeDriver | SeeMySQLConnector/NetDeveloperGuide. |
ObjectiveCaml | OBjectiveCamlMySQLBindings | libmysqlclient | SeeMySQLBindingsforObjectiveCaml. |
Octave | DatabasebindingsforGNUOctave | libmysqlclient | SeeDatabasebindingsforGNUOctave. |
ODBC | Connector/ODBC | libmysqlclient | SeeMySQLConnector/ODBCDeveloperGuide. |
Perl | DBI/DBD::mysql | libmysqlclient | SeeSection27.10,“MySQLPerlAPI”. |
Net::MySQL | NativeDriver | SeeNet::MySQLatCPAN | |
PHP | mysql,ext/mysqlinterface(deprecated) | libmysqlclient | SeeOriginalMySQLAPI. |
mysqli,ext/mysqliinterface | libmysqlclient | SeeMySQLImprovedExtension. | |
PDO_MYSQL | libmysqlclient | SeeMySQLFunctions(PDO_MYSQL). | |
PDOmysqlnd | NativeDriver | ||
Python | Connector/Python | NativeDriver | SeeMySQLConnector/PythonDeveloperGuide. |
Python | Connector/PythonCExtension | libmysqlclient | SeeMySQLConnector/PythonDeveloperGuide. |
MySQLdb | libmysqlclient | SeeSection27.11,“MySQLPythonAPI”. | |
Ruby | MySQL/Ruby | libmysqlclient | Useslibmysqlclient.SeeSection27.12.1,“TheMySQL/RubyAPI”. |
Ruby/MySQL | NativeDriver | SeeSection27.12.2,“TheRuby/MySQLAPI”. | |
Scheme | Myscsh | libmysqlclient | SeeMyscsh. |
SPL | sql_mysql | libmysqlclient | Seesql_mysqlforSPL. |
Tcl | MySQLtcl | libmysqlclient | SeeSection27.13,“MySQLTclAPI”. |
TiDB 支持的连接器版本
Connector | Connectorversion |
---|---|
Connector/C | 6.1.0GA |
Connector/C++ | 1.0.5GA |
Connector/J | 5.1.8 |
Connector/Net | 6.9.9GA |
Connector/Net | 6.8.8GA |
Connector/ODBC | 5.1 |
Connector/ODBC | 3.51(Unicodenotsupported) |
Connector/Python | 2.0 |
Connector/Python | 1.2 |
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程