У меня Linux сервер:
Distributor ID: Debian
Description: Debian GNU/Linux 5.0.10 (lenny)
Release: 5.0.10 Codename: lenny
В последнее время сервер MySQL работал немного медленнее при попытке установить соединение с базами данных, поэтому я попытался перезапустить службу с помощью service mysql restart
с тех пор произошло 2 вещи:
Как только я попробую сервис 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, что я могу сделать в таком случае, я даже не знаю, остались ли у меня базы данных или они уже потеряны.
Какие шаги необходимы, чтобы это исправить?
После этого придется перенастроить виртуальный хост, чтобы снова включить мои сайты.
Я потерял помощь?
Чтобы установить mysql на debian Lenny, я попробовал следующее:
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
Ваш сервер был скомпрометирован (согласно предыдущему вопросу, а также каким-то образом подтвержден странным поведением двоичных файлов, таких как tail
или другие, которые были заменены).
Так что вам нужно сделать чистую переустановку всего; никаким командам нельзя доверять, и они могут работать некорректно, как кажется. Вам следует использовать новый сервер и установить Linux и остальную часть стека (mysql, php и т. Д.) С нуля из репозиториев или скопировать свои данные и код, стереть текущий сервер и переустановить.
Перед этим вы хотите попытаться выяснить, где была уязвимость, которую они использовали, чтобы это больше не повторилось.
Также вы хотите сначала протестировать на сервере или исследовать (спросить, поискать), есть ли в новых (текущих) версиях стека (особенно PHP) проблемы с обратной несовместимостью.
Я вижу несколько проблем. Вы говорите, что сделали это:
sudo service mysql restart
Но вы вошли в систему как root или суперпользователь?
Кроме того, эта ошибка не имеет 100% смысла:
error:tail:
invalid option -- n
Try `tail --help' for more information.
tail: invalid option -- n
Try `tail --help' for more information.
Так вы пытаетесь следить за журналом MySQL? А возможно, неправильно ввел хвостовую команду? Я бы рекомендовал сделать это вместо этого:
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/