当我尝试在 Ubuntu Server 9.04 机器上启动 MySQL 时出现错误:
/usr/sbin/mysqld:/etc/mono-1.9/lib/libz.so.1:没有可用的版本信息(/usr/sbin/mysqld 所需)
这会导致 MySQL 守护进程无法启动。Mono 似乎已集成到 MySQL 中,但我不确定这是如何实现的。我该如何修复此问题?
答案1
Mono 未集成到 MySQL(据我所知),但听起来 Mono 附带的 libz 版本优先于 Linux 附带的版本(通常在 /usr/lib 或 /usr/lib64 中)。您可能应该检查LD_LIBRARY_PATH
环境变量,以及影响共享库加载位置的任何其他因素。
PS 你可能想看看这一页。我必须承认我只是扫描了一下,但听起来 /usr/lib/libz.so.1 是一个符号链接,使用 Mono(构建 MonoDevelop?)时可能会导致此符号链接重新指向错误版本的 libz。检查这是否是发生在您身上的情况。
我可以确认在我的 RHEL 系统上,/usr/lib/libz.so.1 是指向 /usr/lib/libz.so.1.2.3 的符号链接:
$ ls -l /usr/lib64/libz.so.1*
lrwxrwxrwx 1 root root 13 Jun 28 2007 /usr/lib64/libz.so.1 -> libz.so.1.2.3
-rwxr-xr-x 1 root root 85928 Jul 19 2006 /usr/lib64/libz.so.1.2.3
$ ls -l /usr/lib/libz.so.1*
lrwxrwxrwx 1 root root 13 Jun 28 2007 /usr/lib/libz.so.1 -> libz.so.1.2.3
-rwxr-xr-x 1 root root 75284 Jul 19 2006 /usr/lib/libz.so.1.2.3