问题标签 [libmysql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1204 浏览

mysql - 通过 SSL 从 Delphi 程序连接到远程 MySQL 服务器

我对 SSL 原则没有很好的了解,但只是希望加密对我有用。我有一个数据库和一个指定了“REQUIRE X509”的用户。已按照 MySQL 文档中的说明创建了必要的证书,并且运行良好 - 我可以从 Windows 命令行连接到服务器。

问题出现了,当我尝试使用 MySQL Client API 从我的程序中执行相同操作时(没有 SSL,该程序也可以正常工作)。使用的单位是:http ://www.audio-data.de/mysql.html 。

这些是我的操作路径: 1) 如果我只是在 mysql_real_connect() 之前添加 mysql_ssl_set() 调用(带有适当的参数),最后一个会给出一般的 SSL 连接错误。2) en/mysql-ssl-set.html 中的 MySQL 文档说,该函数总是返回 0。但是当我检查时,结果似乎是数字 11150848。然后我这样写:

...并重复该行 8 次。每次它返回一个稍大的数字 - 11158528、11158784、11159040,......最后两次调用的两个零。

之后 mysql_real_connect() 终于成功了!该程序甚至设法执行一些查询,为它们返回正确的结果(我知道数据),但随后它因访问冲突而崩溃:在某个地方写入地址。崩溃点因运行和代码的细微更改而异。

它看起来很像版本不兼容问题。我尝试了 MySQL 5.0 和 5.1 Windows 安装中的库(服务器是 5.1 并在 Linux 下远程运行;但是,5.0 mysql-client 程序在 SSL 连接到它时没有问题),但没有成功。

有人熟悉这个问题吗?非常感谢您的帮助,并对问题中的错误深表歉意。

0 投票
4 回答
8365 浏览

c++ - libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

我应该使用哪个来链接 mysqlclient 库?它们之间有什么区别?我似乎找不到答案。谢谢。

0 投票
1 回答
2034 浏览

mysql - 无法从 cygwin 中的源代码构建 mysql 连接器/c (libmysql)

我正在尝试从 cygwin 中的源代码构建 MySQL 的“连接器/C”,但存在问题。

-一些上下文-

我们可以谈论很多关于为什么有人想要libmysql在 cygwin 中使用。在这种情况下,使用 cygwin 工具集在 windows 机器上进行一些 unix 开发会更简单。

从我的研究来看,我似乎可以获得连接器的旧版本(可能是 5.1)来构建 OK。./configure但是,当 MySQL 开发人员从驱动构建配置切换到驱动构建配置时,对 cygwin 的支持就落后了cmake

MySQL 提供下载的源 tar-ball 版本是 6.0.2,所以这是我正在研究的版本。

-一个(某种)解决的问题-

我遇到的第一个问题是dtoa()stdlib.h. (许多其他试图构建各种最新版本的人也遇到了这个问题——如果谷歌有任何指导的话。)网上有各种各样的建议来解决这个问题。我的选择:暂时替换为删除stdlib.h了定义的那个。,真的。但它有效dtoa()

(这个“修复”消除了早期的编译错误,并且该过程清楚地运行到链接,由于明显不相关的原因它失败了。)

-一个未解决的问题-

libmysql代码依赖yaSSL于. 即使我提供cmake-DWITH_OPENSSL=1参数,情况似乎也是如此,只有在我使用 cygwin setup-tool/package-manager将包添加到我的环境后才接受该参数。似乎正在使用“纯虚拟”类成员。根据我对 C++ 内部结构的(有些有限的)了解,这意味着编译器隐式假定特殊符号/函数的声明,这会导致链接器搜索函数的(单个)定义。openssl-develyaSSL__cxa_pure_virtual()__cxa_pure_virtual()

代码和构建过程的结构方式是,每个yaSSL源实现文件都被编译成一个目标文件。其中许多文件引用另一个定义(即包含实现)的文件__cxa_pure_virtual()。在链接阶段,每个包含定义的对象都相互冲突。(因为符号被定义为extern,或更具体地说:

这些定义位于共享命名空间中。因此,没有给链接器一个规则来决定从每个引用中链接到哪一个。)结果是 a multiple definition error,例如:

我尝试了一些非常简单的尝试来解决这个问题。

  • 我删除了的所有定义,__cxa_pure_virtual()但这只是用未定义的引用错误替换了多定义错误。
  • __cxa_pure_virtual()我徒劳地更改了to的所有定义,inline希望编译器会从内联使用的函数中删除外部引用。(我不确定 C++ 何时使用查找表作为间接层,但inline在这些情况下似乎不是一个选项。)如果我记得该测试的具体结果:它创建的结果与没有定义相同的__cxa_pure_virtual()
  • 我开始在源代码中寻找纯虚拟函数的用途,libmysql但这似乎是一个兔子洞......
  • 考虑研究构建过程,以便将定义__cxa_pure_virtual()放在一个独立的目标文件中(然后,我会从每个其他目标文件中删除该定义)。

我正在寻找(包括)之间的选择

  1. 对项目进行最小修改以使其构建有用的东西,以及
  2. 使构建过程在所有当前支持的平台cygwin 上正常工作的正确补丁集。

“Between”是因为可能存在一些应该考虑的中间替代方案。所以,在我看来,这里最重要的问题是,“多定义错误(在这种情况下)的最简单/最简单的修复方法是什么?” 紧随其后的是,“应该将哪些内容反馈给 MySQL 团队,以便构建过程可以(重新)移植到 cygwin?”

-最后的笔记-

如果 MySQL 的开发人员放弃了对 cygwin 的支持,我不知道是什么让他们的注意力重新回到了那个平台上。

我希望看到有理由在 cygwin 中工作的开发人员可以保留针对 MySQL 连接器的 cygwin/unix 构建测试他们的代码的选项。

社区维护一个知识库可能有一些价值,其中至少包含最少的黑客攻击,以在 cygwin 中构建有用的连接器的最新版本(可能还有一些最新版本)。朝着这个方向迈出的一个好的第一步可能是在 stackoverflow 上进行一些讨论,甚至可能作为这个线程的评论和答案。

0 投票
1 回答
1226 浏览

node.js - Cygwin下如何安装libmysql?

我正在尝试在 Cygwin 下为 NodeJS 构建 db-mysql 扩展。问题是,它需要 libmysql 开发库和包含文件。我不知道如何安装(以及从哪里获得)这些东西以与 Cygwin 一起使用。在 Ubuntu 下我会这样写:

但这在 Cygwin 下是不可能的。当我运行 Cygwin 的 setup.exe 时,也没有可用的 libmysql 包。有谁知道如何解决这个问题?

我已经在包括 MySQL 数据库的 Windows 下安装了 wamp。我想在 Cygwin 下使用该安装中的数据库,这可能吗?

谢谢

0 投票
2 回答
3282 浏览

cmake - 带有mingw的mysqlclient

我想在通过 mingw 交叉编译到 Windows 的项目上使用 libmysqlclient。为了链接我的程序,我需要“mysqlclient.a”,但我无法得到它。

我尝试为 mysql 客户端的 windows 上的 mingw 创建 makefile,但配置步骤失败。


我终于能够构建它...在 Windows 上使用 mingw。

以下是步骤:

  1. 安装cygwin
  2. 在你的 cygwin 中安装包 make、gcc、g++、cmake 和 cygidn
  3. 下载并解压 libmysql 源代码
  4. 编辑文件 strings/dtoa.c 并将所有出现的 替换dtoa为其他内容_dtoa以防止冲突
  5. cd 到软件包库
  6. 在 mingw 中输入 cmake -G "Unix Makefiles"
  7. 制作
  8. 进行安装
  9. 编辑 C:\cygwin\usr\local\mysql\include\mysql.h 并在#include <winsock.h> /* Bug win32 */之后添加#define _mysql_h
  10. 您可以在“C:\cygwin\usr\local\mysql”中获取文件

我得到“libmysqlclient.a”和“liblibmysql.dll.a”并将我的程序与它们链接,但我仍然得到链接器错误。怎么了 ?但我仍然得到链接错误!

strings libmysqlclient.a | grep _mysql_ping当链接器抱怨未定义对 `_mysql_ping@4' 的引用时返回结果

0 投票
7 回答
43182 浏览

mysql - mysql2.so:libmysqlclient_r.so.15:无法打开共享对象文件:没有这样的文件或目录

我正在尝试使用 Ubuntu 10.04 服务器、sphinx、myql2 版本 0.2.7 和 percona 服务器 5.5 (Myslql 5.5) 运行 Rails 两个应用程序。irb 中的 mysql2 工作正常,我可以连接到数据库。这个 rails 2 应用程序正在另一个带有 MySql 5.1 的 Centos 服务器上工作。当我运行时:

我得到:

mysql2.so:libmysqlclient_r.so.15:无法打开共享对象文件:没有这样的文件或目录

这是我拥有的库:

我该如何解决?

0 投票
1 回答
636 浏览

c++ - 通过加载的 libmysql.dll 连接到 mySQL DB

我正在加载一个 libmysql.dll 并想连接到一个数据库。调用 mysql_real_connect 时出现缓冲区溢出错误。为什么?代码:

0 投票
4 回答
18783 浏览

linux - Linux - 未找到依赖项 libmysqlclient.so.15

我开始安装,现在我收到文件依赖项错误

看:

centos如何安装一个libmysqlclient.so.15依赖?

谢谢。

0 投票
3 回答
3158 浏览

c - libmysql mysql_real_connect 使用 localhost 失败,但使用本地 IP 地址

我正在使用 libmysql C API,该mysql_real_connect调用仅在我使用主机的真实 IP 地址时才有效 - 不是localhost. 如果我localhost用作主机,我会收到以下错误:

错误 2003 (HY000): 无法连接到 'localhost' (0) 上的 MySQL 服务器

身份验证应该没问题,因为使用的用户拥有本地主机和任何主机的所有权限。

顺便说一句,它是 Windows 7 上的 XAMPP 安装。

0 投票
2 回答
2246 浏览

mysql - 使用 MySQL C API 直接获取数字

我正在使用带有 C++ 的 MySQL C API 连接到数据库。我想从数据库中选择一些数字。

有没有办法直接将 INTEGER 或 DOUBLE 等数字类型提取到 int 或 double 等原生 C 类型中,而无需从字符串中解析它们?

编辑:枚举呢?我讨厌每次都做一个 strcmp 而不是使用 switch。