mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)
使用 service mysqld start 启动 MySql 服务器时显示此错误。
我该如何修复它?尝试运行 yum update 和 yum reinstall glib*,但没有任何效果...
操作系统:CentOs 6.7 x64
只有今天不起作用,直到昨天都运行良好。
Name : mysql
Arch : x86_64
Version : 5.1.73
Release : 5.el6_6
Size : 894 k
Repo : base
Summary : MySQL client programs and shared libraries
URL : http://www.mysql.com
License : GPLv2 with exceptions
yum info mysql-server
Name : mysql-server
Arch : x86_64
Version : 5.1.73
Release : 5.el6_6
Size : 8.6 M
Repo : base
Summary : The MySQL server and related files
URL : http://www.mysql.com
License : GPLv2 with exceptions
我使用以下命令安装了 mysql: yum install mysql && yum install mysql-server
mysqld 是进程。
rpm -qf /usr/libexec/mysqld
mysql55w-server-5.5.46-1.w6.x86_64
yum info mysql55w-server
Name : mysql55w-server
Arch : x86_64
Version : 5.5.46
Release : 1.w6
Size : 45 M
Repo : installed
From repo : webtatic
Summary : The MySQL server and related files
URL : http://www.mysql.com
License : GPLv2 with exceptions
答案1
我刚刚启动了一台 C6 VM,在上面安装了 webtatic repo,并安装并运行了服务器包。我不知道你是怎么安装的在之上现有的mysqld,但无论如何,当我安装它时 代替现有的,glibc 要求是正确的并且得到满足。
我不明白为什么你的要求是 glibc 2.14。也许 webtatic 临时发布了一个带有错误运行时链接的版本,然后在其之上发布了一个正确的版本,而没有改变版本号。很难说,但当你决定去越野滑雪并从奇怪的存储库安装东西。
如果我是你,我会复制一份/var/lib/mysql
,卸载并重新安装 mysql55w 包(这次做得很干净!),然后停止刚刚安装的 mysqld,复制代替/var/lib/mysql
可能出现的任何新服务器(并保留任何这样的新服务器以备不时之需),然后尝试启动服务器。
如果失败,请准备从备份中恢复您的数据库。
答案2
我认为发生了以下情况。您使用第三方存储库在系统上安装了更新版本的 MySQL。这些软件包没有进行正确的依赖性检查,或者这些软件包是被强制安装到系统中的。
当时您没有重新启动 mysql-server 服务,因此在过去的一个月里您一直在使用旧的包,因为它已经在内存中并且正在使用中。
您重新启动了系统,这导致旧的 mysql 二进制文件被释放,新的二进制文件开始使用。新的二进制文件需要比现有版本更高的 GLIBC 版本。
我该如何修复它?
删除您现在安装的版本。安装 CentOS 附带的版本(您可能一直在使用它)。然后进行一些研究,找到一个存储库,该存储库提供您想要的 MySQL 版本,并且满足(或可用)您的系统的依赖关系。