【问题标题】:mariadb-test / mysqltest: symbol lookup error: mariadb-test: undefined symbol: PCRE2regcompmariadb-test / mysqltest:符号查找错误:mariadb-test:未定义符号:PCRE2regcomp
【发布时间】:2021-09-17 09:45:04
【问题描述】:

我正在尝试微调我的数据库,为此我想尝试 mariadb-test(或 mysqltest)客户端程序。 我尝试通过 apt(我更新了)安装它几次,下载包并使用 dpkg 安装,但我总是遇到这个错误:

mysqltest: symbol lookup error: mysqltest: undefined symbol: PCRE2regcomp

我知道依赖关系肯定有错误,但我不知道如何解决。

有什么建议吗?

谢谢


环境:

  • Debian 破坏者
  • MariaDB 10.5.12
  • Nginx 1.18

ldd /usr/bin/mysqltest
    linux-vdso.so.1 (0x00007ffd6dce5000)
    libpcre2-posix.so.2 => /lib/x86_64-linux-gnu/libpcre2-posix.so.2 (0x00007f02e00cf000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f02e003c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f02e001b000)
    libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f02dff89000)
    libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f02dfc9d000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f02dfc98000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f02dfa78000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f02df8f4000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f02df771000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f02df5b0000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f02e0524000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f02df596000)

编辑:

好吧,现在事情变得越来越奇怪了。我用全新的 debian 安装创建了一个虚拟机,根据this 安装了 mariadb-server-10.5,从 apt 安装了 mariadb-test 并让它工作。 然后我在服务器中复制,从 apt/sources.list 中删除旧存储库,根据链接添加一个,卸载 mariadb-test 和相关 pcre 库并从 apt 重新安装 mariadb-test。

同样的错误。

ldd /bin/mariadb-test 在两台机器上输出相同(十六进制除外)。

所以目前我不确定问题出在包上,但不知道下一步该尝试什么。

【问题讨论】:

  • 如果是 debian 软件包,请向 bugs.debian.org 报告。如果是 MariaDB 分发包报告给 jira.mariadb.org。
  • 嗨@danblack,感谢您的评论。当我在 debien 上报告 bug 时,它提醒我 buster 带有 mariadb 10.3,而不是 10.5。所以这不是 debian 软件包问题。但是由于我能够让 mariadb-test 在全新安装上工作,我认为这也不是 MariaDB 包的问题。如果您有任何其他建议,请告诉我。

标签: mysql mariadb debian


【解决方案1】:

已安装 Debian 和 MariaDB 软件包 mariadb-test in /usr/bin

这看起来可能是一个二进制 tarball,它已安装到 / 并带有 --skip-prefix=1。缺少符号是因为它再次链接 pcre 版本 1 而不是版本 2。

这也是一个分发错误,因为二进制 tarball 应该是 statically linked

【讨论】:

  • 再次感谢您调查此@danblack。你对我如何解决它有什么建议吗?抱歉,如果我遗漏了什么。
  • 这看起来像是您系统上的一个混乱的 pcre2 编译版本。我看到的对 PCRE2regcomp 的唯一引用是在 github.com/luvit/pcre2 的自述文件中,作为可选的编译选项。 mariadb-test 是关于 MariaDB 服务器的功能测试。它实际上不会帮助您进行调整。使用您的配置和show global status 输出在dba.stackexchange.com 上提出调整问题。
猜你喜欢
  • 2012-06-19
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 2017-05-04
  • 1970-01-01
相关资源
最近更新 更多