情况描述
我有一台Linux服务器:
Distributor ID: Debian
Description: Debian GNU/Linux 5.0.10 (lenny)
Release: 5.0.10 Codename: lenny
最近,MySQL 服务器在尝试建立与数据库的连接时有点慢,因此我尝试重新启动服务,但service mysql restart
随后发生了两件事:
- 服务停止并且拒绝再次重新启动
- 显示错误:
一旦我尝试服务 mysql(启动或重新启动甚至停止)
error:tail:
invalid option -- n
Try `tail --help' for more information.
tail: invalid option -- n
Try `tail --help' for more information.
mysql start
给出:
ERROR 2002 Can't connect to local Mysql server through socket
/var/run/mysqld/mysqld.sock (2)
但是这个文件根本不存在于这个目录中。我想也许这个文件位于我的服务器的其他地方,只是my.cnf
包含错误的路径,这就是调用失败的原因。我试图找到文件的正确路径:mysqld.sock
并在文件中编辑所需的行my.cnf
,但使用 find 命令我发现没有这样的文件mysqld.sock
或mysql.sock
在所有服务器目录中都没有。
下一步,我尝试从头开始重新安装 MySQL 服务器,但发生的情况是旧版本的 MySQL 和 Apache 被成功删除,安装过程中断且无法继续。
php -v
显示下一个输出:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20060613/mysql.so' - /usr/lib/php5/20060613/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20060613/mysqli.so' - /usr/lib/php5/20060613/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20060613/pdo_mysql.so' - /usr/lib/php5/20060613/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.2.6-1+lenny16 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 3 2012 08:19:55)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with the ionCube PHP Loader v3.1.28, Copyright (c) 2002-2007, by ionCube Ltd.
我现在想做的事情是:
我对位于下面的网站进行了备份/var/www/vhosts
,我想将系统升级到 Wheezy 7.0,然后安装 Apache 和 MySQL,在这种情况下我该怎么办,我甚至不知道我是否还拥有我的数据库,或者它们已经丢失了。
需要采取什么步骤来解决这个问题?
之后必须重新配置虚拟主机才能再次启用我的网站。
我迷路了,有什么帮助吗?
编辑:
要在 Debian Lenny 上安装 mysql,我尝试了这个:
aptitude -t lenny-backports install mysql-server-5.1 mysql-client-5.1 mysql-common
在安装过程中,错误日志文件中显示连接测试失败:
mysql: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
答案1
您的服务器已被入侵(根据前面的问题,并且也通过tail
被替换的二进制文件的奇怪行为得到了证实)。
因此,您必须重新安装所有内容;任何命令都不可信任,它们可能无法正常工作。您应该使用新服务器并从存储库中重新安装 Linux 和其余堆栈(mysql、php 等),或者复制数据和代码,清除当前服务器并重新安装。
在此之前,您需要尝试找出他们利用的漏洞在哪里,以免再次发生这种情况。
您还希望先在服务器上进行测试或调查(询问、搜索)堆栈(尤其是 PHP)的较新(当前)版本是否存在向后不兼容的问题。
答案2
我发现了一些问题。你说你这样做了:
sudo service mysql restart
但是您是以 root 或超级用户身份登录的吗?
此外,这个错误完全没有意义:
error:tail:
invalid option -- n
Try `tail --help' for more information.
tail: invalid option -- n
Try `tail --help' for more information.
那么,您是否正在尝试跟踪 MySQL 日志?也许输入了错误的 tail 命令?我建议您改为执行以下操作:
sudo tail -f -n 200 /var/log/mysql/mysql.log
编辑:在您上面的评论中,您说:
$ sudo apt-get remove mysql-server mysql-client mysql-common 此命令出错,并且程序停止...之后服务(mysql 或 apache2)状态、启动或任何指示没有 mysql 服务器或 apache
所以你运行了sudo apt-get remove mysql-server mysql-client mysql-common
?你从系统中彻底删除了 MySQL。如果你正在升级,为什么要这么做?升级是一个就地过程。
我建议您检查此目录中是否有任何内容,该目录是存储实际 MySQL 二进制文件的位置:
ls -la /var/lib/mysql/
如果仍有内容存在,我会执行以下操作来保留该内容:
sudo mv /var/lib/mysql/ /var/lib/mysql_BACKUP/
然后像这样重新安装 MySQL:
sudo apt-get install mysql-server mysql-client mysql-common
重新安装后,像这样停止 MySQL 服务器:
sudo service mysql stop
然后像这样对二进制数据库的目录进行混洗,以将旧的数据库重新放到位:
sudo mv /var/lib/mysql/ /var/lib/mysql_FRESH_INSTALL_BACKUP/
sudo mv /var/lib/mysql_BACKUP/ /var/lib/mysql/