【原创】modb 功能设计之“支持部分MySQL客户端协议”-2

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

首先看看有哪些资源:
1. MySQL 官网 【MySQL Connectors】->【Connector/C (libmysqlclient)

Connector/C (libmysqlclient) is a client library for C development.
官网对 MySQL Connector/C 的 完整文档描   述参考   这里     重点内容摘录翻译如下

===


22.5. MySQL Connector/C

      MySQL Connector/C 是一个客户端库,提供了用于客户端/服务器通信的 C API 。其可作为单独组件替代 MySQL Server 发布版本中带有的 MySQL 客户端库。

使用 MySQL Connector/C 的理由:

  • 如果你仅需要使用客户端库提供的功能,MySQL Connector/C 提供了你所需的一切。没有必要源码编译或安装 MySQL Server 包来获取相关功能。
  • MySQL Connector/C 不依赖 MySQL Server 的发布周期。bug 修复和新特特性添加均可独立于 MySQL Server 的发布。


22.5.1. MySQL Connector/C Versions

目前存在如下 MySQL Connector/C 版本:

  • MySQL Connector/C 6.1:基于当前(5.6)MySQL 源码中的 C API 部分生成,并且与 5.6 源码保持同步更新。
  • MySQL Connector/C 6.0:最初从 MySQL 的源码树分支上创建,但目前相较于那条源码树分支上的 C API 内容已经过时。
结论就是,MySQL Connector/C 6.1 当然优于 6.0 。MySQL Connector/C 6.1 已提供了如下 6.0 中不具备的功能特性:
  • 支持可插拔鉴权框架,即可以插件形式支持各种鉴权方法。该框架既可被用作 MySQL 本地鉴权方式,又可用作外部鉴权方式。
  • 支持客户端侧 SHA-256,PAM 和 Windows 本地鉴权插件。老的 Connector/C 6.0 仅能使用本地 MySQL 密码形式的账号信息来进行连接。如果客户端想要使用一种不同的鉴权方式的账户信息来进行连接,则会受到“当前用户访问被拒绝”的错误。
  • 支持 prepared CALL 语句,该功能使得客户端程序,能够在存储过程中处理,产生的多结果集,并获得最终的 OUT 和 INOUT 存储过程参数值。
  • 支持 IPv6 连接。
  • 支持在连接时,将客户端程序与指定 IP 地址进行绑定。
  • 支持在连接时,指定连接属性来告之服务器端。


22.5.2. MySQL Connector/C Supported Platforms

表中给出了 MySQL Connector/C 已经测试过的平台。
Table 22.28. Supported Platforms for MySQL Connector/C 6.1

Platform
Versions
Windows
Windows Vista, Server 2008, Server 2012, 7, 8
Linux
Oracle and RHEL 5, 6; SuSE LES 11; CentOS 5, 6; Fedora 15, 16; OpenSuSE 12.1; Debian 6; Ubuntu 12.04; generic glibc 2.5-based Linux systems
Solaris
10, 11
Mac OS X
10.6, 10.7
FreeBSD
9

Table 22.29. Supported Platforms for MySQL Connector/C 6.0.2
Platform
Versions
Windows
Windows 2000, XP, Vista, Server 2003, Server 2008
Linux
RHEL 4, 5; SuSE LES 9, 10; generic glibc 2-based Linux systems
Solaris
8, 9, 10
Mac OS X
10.4, 10.5
FreeBSD
6, 7
HP-UX
11.11, 11.23, 11.31
IBM AIX    
5.3


22.5.3. MySQL Connector/C Distribution Contents

MySQL Connector/C 6.1 distributions contain the header, library, and utility files necessary to build MySQL client applications that communicate with MySQL Server using the C API.

Distributions are available in binary and source formats. A binary distribution contains the header, library, and utility components discussed following, compiled and ready for use in writing client programs. A source distribution contains the source files required to produce the same headers, libraries, and utilities included in a binary distribution, but you compile them yourself.

MySQL Connector/C 分布包中包含如下组件:

A set of .h header files that C applications include at compile time. These files are located in the include directory.

Static and dynamic libraries that C applications link to at link time. These libraries are located in the lib directory. The library names depend on the library type and platform for which a distribution is built:

Unix(以及 Unix-like)平台上,静态库为 libmysqlclient.a ,动态库为 libmysqlclient.so 。

Windows 平台上,静态库为 mysqlclient.lib ,动态库为 libmysql.dll 。动态库对应的静态导入库为 libmysql.lib 。相应 debug 版本的库在 lib/debug 目录下可以找到。

一些小实用程序。


【22.8.4.1. Building C API Client Programs】

编译 MS Windows 上的 MySQL 客户端程序

  • 指定头文件和库文件所在位置。
  • 需要额外链接库:ws2_32 和 Secur32 。
  • 需要链接静态库(mysqlclient.lib)或者动态库(libmysql.dll)。

链接静态库时,需要注意:

  • 客户端应用程序必须使用,与库编译时相同的 VS 版本进行编译。
  • 客户端应用程序应该使用编译选项 /MT 来静态链接 C 运行时库。

      如果客户端应用程序以 debug 模式构建,并且使用了静态 debug C 运行时库(编译选项为 /MTd ),其可以链接到静态库 mysqlclient.lib ,当且仅当库是采用同样的编译选项编译时。如果客户端应用程序使用动态 C 运行时库(编译选项为 /MD 或者 debug 模式的 /MDd),则必须链接到 libmysql.dll 动态库上,此时不可链接到静态库上。

===


Changes in MySQL Connector/C 6.0】 
Changes in MySQL Connector/C 6.1】 

Changes in MySQL Connector/C 6.1.2 (2013-09-30)

添加或者改变的功能:

      专门针对 Windows XP 和 Windows Server 2003 的条件变量实现已从源码中移除,因为 MySQL 5.6 决定不在提供上述平台的支持。

注意:上述该表应该做如下理解:Connector/C 6.1 尽管在之前没有被官方声明支持 Windows XP 或 Windows Server 2003,但是确实在上述平台是可用的。但从 6.1.2 版本开始已经不行了。

MySQL 现已支持协议跟踪插件的使用。

      通过 VS2008、VS2010、VS2012 生成的静态库现已作为 Windows 平台 Connector/C 包的一部分一同发布。在 lib 目录下的 vs9、vs10 和 vs11 分别包含了使用 VS2008、VS2010、VS2012 构建的静态库和相应的 pdb 文件。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
99 1
|
7月前
|
网络协议 关系型数据库 MySQL
1.4 启动MySQL客户端程序
1.4 启动MySQL客户端程序
43 0
|
7月前
|
关系型数据库 MySQL 数据库
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
360 0
|
28天前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
81 1
|
3月前
|
SQL 关系型数据库 MySQL
免费MySQL数据库客户端推荐
免费MySQL数据库客户端推荐
61 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库免费客户端简介
MySQL数据库免费客户端简介
34 0
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL企业版与标准版功能对比:如何选择适合您的版本?
随着数字化时代的到来,企业对于数据处理的需求越来越高,而数据库作为数据处理的核心,其性能和成本成为了企业关注的焦点。阿里云全新推出的PolarDB MySQL企业版和标准版,以全新的架构和优化,为企业提供了高性能、低成本的数据库解决方案。但在功能上,这两个版本有很多差异,我们该如何选择呢?
55 2
|
3月前
|
JavaScript 关系型数据库 MySQL
基于JavaWeb和mysql实现网上书城前后端管理系统(源码+数据库+开题报告+论文+答辩技巧+项目功能文档说明+项目运行指导)
基于JavaWeb和mysql实现网上书城前后端管理系统(源码+数据库+开题报告+论文+答辩技巧+项目功能文档说明+项目运行指导)
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL版:强大功能,超高性能,满足企业级需求
PolarDB MySQL版:强大功能,超高性能,满足企业级需求 在当今信息化社会,企业对于数据处理的需求日益增长,如何选择一款高性能、高可靠性且成本合理的数据库成为了一大挑战。阿里巴巴的PolarDB MySQL版应运而生,它不仅兼容MySQL,还具备传统数据库所不具备的优势,为企业提供了更高效、更可靠的数据处理方案。
107 3
|
4月前
|
关系型数据库 MySQL Shell
百度搜索:蓝易云【Shell脚本实现Mysql持续kill功能】
将以上代码保存为一个名为 `kill_mysql.sh`的文件,并确保该文件具有执行权限(可以使用 `chmod +x kill_mysql.sh`命令赋予执行权限)。然后在终端中运行该脚本即可实现MySQL的持续kill功能。
46 0

推荐镜像

更多