【问题标题】:ERROR 1126 (HY000): Can't open shared library 'lib_mysqludf_sys.so' (errno: 193 )错误 1126 (HY000): 无法打开共享库 'lib_mysqludf_sys.so' (errno: 193)
【发布时间】:2015-04-22 22:00:05
【问题描述】:

我正在使用在 32 位 Microsoft Windows XP(专业版 2002 Service Pack 3)上运行的 MySQL 5.6.11。我有兴趣安装 MySQL sys_exec UDF。

以下命令,

mysql> SHOW VARIABLES LIKE 'plugin_dir';

显示以下插件位置。

+---------------+-----------------------------------------------------+
| Variable_name | Value                                               |
+---------------+-----------------------------------------------------+
| plugin_dir    | C:\Program Files\MySQL\MySQL Server 5.6\lib\plugin\ |
+---------------+-----------------------------------------------------+

我粘贴lib_mysqludf_sys.so 的位置。然后运行以下命令,

CREATE FUNCTION sys_exec RETURNS INT SONAME 'lib_mysqludf_sys.so';

从 MySQL 命令行导致以下错误(在以 root 用户登录并选择了已创建的数据库之后)。

错误 1126 (HY000): 无法打开共享库 'lib_mysqludf_sys.so' (错误号:193)

如何解决这个错误?

C:\WINDOWS\system32 下是否需要msvcp110.dll?它在那里不可用。但是,文件msvcp100.dll 位于C:\WINDOWS\system32 下。

【问题讨论】:

  • 'lib_mysqludf_sys.so' 是一个 Linux 共享库。对于 Windows,您需要将其编译为 Windows .dll。另外:Msvcp110.dll 或 msvcp100.dll 是两个不同的文件,用于 Microsoft Visual C 运行时的两个不同版本(分别为 MSVC 10.0 和 11.0)。我不知道他们与让 MySQL UDF 插件正常工作有什么关系。
  • 如何做到这一点?这超出了我的范围,因为我不积极关心后端。
  • @Tiny 您分享的链接还包括 c 源代码。您需要将 c 源代码编译为 dll(Windows 版本的 linux .so 文件)。操作说明在这里:dev.mysql.com/doc/refman/5.7/en/udf-compiling.html 它有 linux 和 windows 说明,windows 大约在页面下方的 1/3

标签: mysql mysql-5.6 mysql-udf


【解决方案1】:

看起来make.exe 您正在使用cygwin32 bit 运行。如果您使用的是 Netbeans,我建议检查您的工具集合设置(工具-> 选项)。看看你是否在使用 mingw32-make.exe 进行 make 命令。

MYSQL 上编译有点痛苦,因为版本和操作系统之间存在许多移动参数。如果您想从头开始完成所有编译过程,那么以下存储库是一个不错的选择

https://github.com/esabilbulbul/mysql-udf-windows

【讨论】:

    【解决方案2】:

    您必须创建 .dll 文件而不是创建 .so 文件。 Linux 使用 .so 文件,windows 使用 .dll 文件。

    通过运行以下查询检查您的 Mysql 服务器的操作系统。

    显示像“version_compile_os”这样的变量

    在windows中为相同的操作系统版本创建一个dll文件。

    在VS 2010中更改平台步骤如下。

    右键项目>>点击配置管理器(右上角)>>平台(如果Mysql服务器是win32则选择Win32如果MySQL服务器是win64则选择x64或win64。)

    现在按照您提到的相同步骤正确创建一个 dll 文件。我希望它能正常工作。

    【讨论】:

    • Vinieth,我不确定 mac 的文件格式,但您可以通过执行以下步骤找到。 1.所有插件都安装在插件目录下。要找出插件目录,请运行以下命令。 SHOW VARIABLES LIKE 'plugin_dir' 2. 检查此目录中文件的文件格式。这将是 mac 的文件格式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多