Как получить файл mysql.sock, ошибочно удаленный из "/mysql/tmp/"

Я застрял с исключением PDO

PDOException: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in lock_may_be_available() (line 167 of home/../includes/lock.inc).

Чтобы решить эту проблему, я попытался воссоздать символическую ссылку, используя команду. Я работаю на сервере Linux.

 ln -s /home/../mysql/tmp/mysql.sock /tmp/mysql.sock

При выполнении вышеупомянутого оператора SQL не было никаких изменений с исключением PDO. А потом я по ошибке удалил mysql.sock файл в "/home/../mysql/tmp/" (не в "/tmp").

Теперь, как мне вернуться или воссоздать mysql.sock файл. И все, что касается исключения PDO, как его решить.

3 ответа

Решение
vi /etc/mysql/my.cnf

Вы найдете строки ниже верхней в вашем файле конфигурации

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

Убедитесь, что mysqld.sock находится там, где он должен быть. Мне не нравится путь в вашем сообщении об ошибке "/tmp/mysql.sock"

Так как вы здесь, ищите и эту строку

bind-address            = 127.0.0.1

Если вы пытаетесь подключиться из удаленного местоположения, прокомментируйте эту строку.

Попробуйте подключиться локально (из терминала на сервере)

mysql -u root -p

Если для вас не важна безопасность (т.е. это ваш личный сервер, а не многопользовательская среда), вы также можете убедиться, что файл может быть прочитан кем-либо

chmod a+r /var/run/mysqld/mysqld.sock

Все вышеперечисленное должно решить ваши проблемы с подключением. Чтобы получить файл, вы можете сделать новую установку сервера MySQL.

apt-get purge mysql-server
apt-get install mysql-server

Или вы можете скачать пакет.deb для mysql-server и распаковать его где-то там. Эквивалентно.rpm, если вы используете БРЗ.

Редактировать: Поскольку вы копировали файлы, возможно, владелец файла изменился на root, проверьте это также (с помощью ls-la / path). Владелец должен быть MySQL группы MySQL. Не могу думать ни о чем другом.

Я получил эту ошибку после экспериментов сCHECKограничение вCREATE TABLEв МарияДБ.

В результате одного из моих экспериментов MariaDB вышла из строя и сообщила мне, что не может повторно подключиться к серверу. Выход и перезапуск привели меня кError 2002сообщение. Как root, я выдалsystemctl stop mysqlкоманду, а затем я начал вручную с/usr/sbin/mysqld --skip-grant-tables --skip-networking.

После перезапуска клиента он подключился к серверу. Я удалил базу данных, над которой работал, когда произошла ошибка сDROP DATABASESQL-команда. Я вышел из клиента, убилmysqldи перезапустил его с помощьюsystemctl start mysql. Когда я перезапустил клиент, все заработало нормально.

Я воссоздал свою базу данных из дампа SQL и вернулся к работе.

К счастью, я работал над небольшой базой данных, которую использовал для изучения управления базами данных, и не имело значения, смогу ли я ее восстановить.

Нужно изменить файл конфигурации httpd.conf корневое значение

Раньше это было Listen : 0.0.0.0:80. Я изменил это на Listen: 0.0.0.0:8080 - изменил корень на более высокое значение из четырех цифр (1024, 8008, 9999 и т. д.) и перезапустил apache server а также mysql, Ну, это сработало.

И на мой вопрос: mysql.sock файл - это файл сокета, он будет создан автоматически при перезапуске сервера MySql

Наконец, Моя проблема решена.

Другие вопросы по тегам