Вопрос или проблема
Я пытался установить mysql-server на своем сервере Ubuntu, но у меня возникает эта ошибка, когда я вводю:
mysql
Вот что я получаю:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Если я проверяю, включен он или нет с помощью:
sudo systemctl status mysql
Я получаю:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2022-04-16 23:29:16 UTC; 5min ago
Process: 474306 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=1/FAILURE)
Apr 16 23:29:16 amir-server systemd[1]: mysql.service: Control process exited, code=exited, status=1/FAILURE
Apr 16 23:29:16 amir-server systemd[1]: mysql.service: Failed with result 'exit-code'.
Apr 16 23:29:16 amir-server systemd[1]: Failed to start MySQL Community Server.
Apr 16 23:29:16 amir-server systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
Apr 16 23:29:16 amir-server systemd[1]: Stopped MySQL Community Server.
Apr 16 23:29:16 amir-server systemd[1]: mysql.service: Start request repeated too quickly.
Apr 16 23:29:16 amir-server systemd[1]: mysql.service: Failed with result 'exit-code'.
Apr 16 23:29:16 amir-server systemd[1]: Failed to start MySQL Community Server.
journalctl -xe дает мне:
Apr 16 23:38:54 amir-server systemd[1]: Failed to start MySQL Community Server.
-- Subject: A start job for unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit mysql.service has finished with a failure.
--
-- The job identifier is 2666039 and the job result is failed.
Я пробовал переустановить, но безуспешно. Забавно, что сервер mysql работает на моем другом компьютере с Linux, но мне нужно, чтобы он работал на этом 🙁
Любая помощь будет очень полезной!
[Изменить]
pgrep -l mysql
не возвращает никаких процессов
/var/log/mysql/error.log
не существует.
И если я делаю mysqld
, то получаю:
mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)
2022-04-17T18:30:29.693043Z 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.
2022-04-17T18:30:29.710554Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.28-0ubuntu0.20.04.3) starting as process 29346
2022-04-17T18:30:29.976620Z 0 [ERROR] [MY-010119] [Server] Aborting
2022-04-17T18:30:30.038737Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.28-0ubuntu0.20.04.3) (Ubuntu).
Я сделал то, что предложил @NioMarvin83. Во время установки я получил это:
MySQL has been frozen to prevent damage to your system. Please see /etc/mysql/FROZEN for help.
Вот что внутри /etc/mysql/FROZEN
:
This MySQL or variant installation has entered "frozen mode". Maintainer
scripts will avoid making changes or starting the daemon until manually
released from this state. See /usr/share/doc/mysql-common/README for
general information about this mode.
In this particular case, an incompatible downgrade attempt has been
detected. This can be resolved in one of two ways:
1. Change the contents of /var/lib/mysql/ to contain database data that
is compatible with the currently installed MySQL or variant daemon
version. For example: you could restore from a backup. Alternatively you
could do a dump using a future version binary and then a restore using
the current version binary.
2. Switch to a MySQL or variant daemon version that is compatible with
the data currently in /var/lib/mysql/. For example, if you have
attempted a downgrade from mysql-server-5.7 to mysql-server-5.6, you
could "apt install mysql-server-5.7" again.
Please resolve this situation and only then remove the /etc/mysql/FROZEN
symlink. You can then run "dpkg-reconfigure <package>" where <package>
should usually be in the form <variant>-server-<version>.
У меня была похожая проблема. После многих попыток, которые закончились только моим разочарованием. Однако единственное, что я сделал перед этим, это установил mysql-server с помощью команды: sudo apt-get install mysql-server
Я пытался установить и переустановить, обновить и обновлять Ubuntu, хотя не был уверен, что моя автоматическая часть xloo поможет.
После множества попыток и большого количества времени мне помогло – я исправил, “очистив” каждый файл, связанный с mysql, и переустановив mysql-server:
sudo apt-get purge mysql-server mysql-client mysql-common
sudo apt-get install mysql-server
Ответ или решение
Если ваш MySQL сервер не запускается на Ubuntu 20.04.3 и вы получаете ошибку ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
, это может быть связано с некоторыми типичными проблемами, которые можно устранить с помощью пошаговых действий.
Шаги по устранению неполадок:
-
Проверка статуса службы MySQL:
Запустите следующую команду, чтобы проверить статус службы:sudo systemctl status mysql
Убедитесь, что служба действительно остановлена и что вы видите сообщение о неудачном запуске.
-
Просмотр логов MySQL:
Обычно логи MySQL находятся по пути/var/log/mysql/error.log
. Если этот файл не существует, это может свидетельствовать о том, что MySQL не был запущен, и лог не был создан. В таких случаях рекомендуется проверить другие журналы, например:journalctl -xe
Это может предоставить дополнительные сведения о проблеме.
-
Устранение «замороженного» состояния:
Судя по вашему скриншоту из/etc/mysql/FROZEN
, ваша установка MySQL находится в «замороженном» состоянии, что означет, что попытка установки версии, несовместимой с вашими базами данных, была обнаружена. Вам нужно решить эту проблему одним из следующих способов:- Вернуть данные базы данных из резервной копии, соответствующей вашей установленной версии MySQL.
- Установить совместимую версию MySQL. Например, если у вас установлена версия 8.0, необходимо удалить или переместить старые файлы в
/var/lib/mysql/
и затем переустановить MySQL.
-
Удаление и повторная установка MySQL:
Если вы хотите переустановить MySQL полностью, используя команды, которые вы упомянули, выполните:sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get autoremove sudo apt-get autoclean
Затем вы можете повторно установить MySQL с помощью команды:
sudo apt-get install mysql-server
-
Проверка прав доступа:
Убедитесь, что у службы MySQL есть корректные права доступа к каталогу/var/lib/mysql
(или другие используемые каталоги). Вы можете это сделать следующей командой:sudo chown -R mysql:mysql /var/lib/mysql
-
Запуск MySQL:
После выполнения всех вышеуказанных шагов попробуйте снова запустить MySQL:sudo systemctl start mysql
И проверьте статус:
sudo systemctl status mysql
Заключение:
Если вам все еще не удается запустить MySQL, вам может понадобиться проверить, существует ли проблема с конфигурационными файлами или даже контентом баз данных в /var/lib/mysql
. Также стоит рассмотреть возможность использования альтернативных инструментов мониторинга и диагностики.
Не забывайте выполнять регулярные резервные копии вашей базы данных, чтобы исключить риск потери данных в будущем. Если возникнут дополнительные вопросы, не стесняйтесь задавать их!