Как получить файл 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 DATABASE
SQL-команда. Я вышел из клиента, убил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
Наконец, Моя проблема решена.