AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 628348
Accepted
dubRun
dubRun
Asked: 2014-09-14 11:42:37 +0800 CST2014-09-14 11:42:37 +0800 CST 2014-09-14 11:42:37 +0800 CST

Exim 无法启动 - 加载查找模块 mysql.so 时出错

  • 772

我不得不在服务器上更改 MySQL 的 root 密码。Exim 还为用户等使用 MySQL。

我不认为 Exim/Dovecot 使用了那个密码,但现在事情并不顺利,我很确定它们是相关的。

当我尝试启动 Exim 时:

Starting exim: Error loading mysql.so: /usr/lib64/exim/4.72-6.6.amzn1/lookups/mysql.so: undefined symbol: mysql_servers
2014-09-13 19:13:22 Error loading lookup module mysql.so: NULL

运行服务--status-all给了我

exim dead but subsys locked

我在 /etc/ 中检查了 /eximdisable,但那里什么也没有。

磁盘空间已使用 85%,文件句柄已使用 7%。

linux
  • 3 3 个回答
  • 504 Views

3 个回答

  • Voted
  1. Todd Lyons
    2014-10-07T09:14:26+08:002014-10-07T09:14:26+08:00

    事实证明,它与 gcc 版本或优化失败无关。相反,它是 exim 二进制文件的不完整编译/链接。gcc 有一个标志(-rdynamic)来告诉链接器导出符号以对动态加载的模块可见。在构建 mysql.so和构建 Exim 二进制文件时,必须将此标志传递给 gcc 。

    如果这个 RPM 是基于 Fedora exim.spec 文件(我的是),我发现有一些补丁设置了 LFLAGS 变量Local/Makefile,但是 make 命令会覆盖命令行上的 LFLAGS。只需将您设置 LFLAGS 的任何内容移动到您的 Local/Makefile 中,然后将其从 make 命令中删除:

    # This used to be set on the make commandline
    echo 'LFLAGS+=-pie' >> Local/Makefile
    #
    # Then further down where the make command is,
    # remove the LFLAGS= setting, leaving only:
    make _lib=%{_lib} FULLECHO=
    

    其他人,您可能只需要添加到您的末尾Local/Makefile:

    LFLAGS+=-rdynamic -ldl
    # _OR_
    EXTRALIBS_EXIM+=-rdynamic -ldl
    

    此处提供更多详细信息: https ://stackoverflow.com/a/482556/611911

    注意:虽然您接受了我提供的第一个答案,但它所做的只是说“是的,我也遇到了问题”。这个答案实际上解决了这个问题。:-)

    • 2
  2. Kondybas
    2014-09-14T12:16:10+08:002014-09-14T12:16:10+08:00

    Exim无法加载mysql.so,因为它尚未构建。您必须确保至少 mysql-client已正确安装。

    • 1
  3. Best Answer
    Todd Lyons
    2014-09-15T07:29:21+08:002014-09-15T07:29:21+08:00

    我最近看到了这个。我在基于 CentOS 6 的 Amazon EC2 服务器上为朋友构建了一些 Exim 4.84 rpm(您没有说您正在运行哪个版本的 Amazon 服务器)。我不得不重新配置规范文件来编译 mysql 模块并将其直接链接到 Exim 二进制文件中,而不是使其成为可加载模块。我不知道为什么这个全局变量对亚马逊服务器上的 mysql 可加载模块不可见,因为它在我构建 Exim 的所有其他架构上都是可见的。

    我的第一个预感是它与 gcc 版本以及它如何处理优化标志有关。但这没有任何证据或事实支持,这只是一种预感。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve