Я получаю следующую ошибку, когда пытаюсь подключиться к mysql:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
.
Есть ли решение для этой ошибки? Что может быть причиной ее возникновения?
Вы подключаетесь к "localhost" или "127.0.0.1"? Я заметил, что при подключении к "localhost" используется коннектор сокетов, а при подключении к "127.0.0.1" используется коннектор TCP/IP. Вы можете попробовать использовать "127.0.0.1", если коннектор сокетов не включен/работает.
Убедитесь, что служба MySQL работает
service mysqld start
Затем попробуйте один из следующих ниже:
(если вы не установили пароль для MySQL)
mysql -u root
если вы уже установили пароль
mysql -u root -p
Если ваш файл мои.КНФ (обычно в папке и т. д.) правильно настроен
socket=/var/lib/mysql/mysql.sock
вы можете проверить, если MySQL запущен с помощью следующей команды:
mysqladmin -u root -p status
попробуйте изменить разрешения на папку MySQL. Если вы работаете локально, вы можете попробовать:
sudo chmod -R 777 /var/lib/mysql/
что решена она для меня
Сервер MySQL не запущен, или не в этом месте находится его файл сокетов (проверьте my.cnf).
Скорее всего в MySQL.носок не существовать в каталоге/var/библиотека/MySQL в/
.
Если вы найдете тот же файл в другом месте, то симлинк это:
Для Ex: у меня в /данных/mysql_datadir/в MySQL.носок
Сменить пользователя в MySQL и выполнить, как указано ниже:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
Что решили мою проблему
Если вы находитесь на последних дистрибутивах RHEL, возможно, потребуется запустить версию MariaDB (с открытым исходным кодом MySQL БД) вместо БД MySQL:
yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start
Тогда вы должны быть в состоянии получить доступ к MySQL в обычном порядке:
mysql -u root -p
В моем случае я перенес файл сокета в другое место в файле /etc/мой.КНФ
из каталога/var/библиотека/MySQL в/в MySQL.носокк
/tmp/и в MySQL.носок`
Даже после перезапуска mysqld, то я по-прежнему вижу сообщение об ошибке, когда я пытаюсь подключиться.
Ошибка 2002 (HY000): может'т подключиться к локальному серверу MySQL через гнездо ' файл/var/библиотека/MySQL в/в MySQL.носок' (2)
Проблема с тем, что клиент настроен. Диагностика ходовой будет на самом деле покажет правильный путь к сокету. например, ПС вход aux | grep в тузды`
Работает:
mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock
Не работает:
mysql -uroot -p
mysql -uroot -p -hlocalhost
Вы можете исправления эту проблему путем добавления той же гнездо под `[клиент] раздел внутри MySQL в конфиге.
Просто отредактировать файл/etc/мой.КНФ Добавьте следующие строки в моей.КНФ
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
Перезапустите MySQL и подключить снова
в mysql -u пользователь -P в базе -ч пароль хозяина;
Проверьте, запущена ли служба mysqld или нет, если нет, запустите службу.
Если проблема не решена, найдите файл /etc/my.cnf
и измените его следующим образом, где вы видите строку, начинающуюся с socket
. Сделайте резервную копию этого файла перед выполнением обновления.
socket=/var/lib/mysql/mysql.sock
Изменить на
socket=/opt/lampp/var/mysql/mysql.sock -u root
Убедитесь, что у вас достаточно места в каталоге/var. Если MySQL демон не способен писать дополнительную информацию на диск сервер MySQL выиграл'т начать, и это приводит к ошибке может'т подключиться к локальному серверу MySQL через гнездо ' файл/var/библиотека/MySQL в/в MySQL.носок' (2)
Рассмотрите возможность использования
expire_logs_days = 10
max_binlog_size = 100M
Это поможет вам сохранить на диске вниз.
Версию MariaDB, разрабатываемая сообществом форк MySQL, стала реализация MySQL по умолчанию во многих дистрибутивах.
Итак, сначала вы должны начать,
$ sudo systemctl start mariadb
Если это не удается, а попробовать,
$ sudo systemctl start mysqld
Затем запустить MySQL,
$ mysql -u root -p
По состоянию на сегодняшний день, в Fedora пакет называется MariaDB в
А в Ubuntu он называется MariaDB в-сервер`.
Поэтому вы можете установить его, если его еще не установлен в вашей системе.
Пожалуйста, проверьте, есть ли другой сервис MySQL работает.
Убедитесь, что вы запустите сервер:
mysql.server start
Затем связаться с пользователем root:
mysql -uroot
попробовать
echo 0 > /selinux/enforce
если вы вносили изменения в файлы в /var/библиотека/MySQL в [ как скопировать или заменить то ], вам необходимо установить владельца файлов в MySQL это так важно, если версию MariaDB.перезапуск сервиса не смог
Чаун -Р в mysql:mysql в файле /var/библиотека/MySQL в/*
команду chmod -Р 700 в /var/библиотека/MySQL в/*
Если ваш MySQL работал ранее и вдруг остановилась как раз на "перезагрузку" и сервер.
Сталкивается с этим вопросом на мой CentOS в ВПС.->
Постоянно получать
Может'т подключиться к локальному серверу MySQL через гнездо ' файл/var/библиотека/MySQL в/в MySQL.носок'(2)`
Попробовал все методы, наконец, перезапуск сервера исправлены проблемы ->
`завершение работы -р Сейчас
Надеюсь, что это помогает !!
Пожалуйста, убедитесь, что вы правильно установили сервер MySQL, я встретил эту ошибку много раз, и я думаю, что это'сложно отлаживать из розетки, я имею в виду, возможно, проще будет переустановить его.
Если вы используете CentOS в 7, Вот это правильный способ, чтобы установить его:
В первую очередь, добавить источник MySQL сообщества<БР /> установить ням http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm`
Затем вы можете установить его ням установить MySQL-сообщества-сервер
Начните его с systemctl: systemctl запустить mysqld
В моем случае, я был импорте новой базы данных, и я не смогла снова подключиться после этого. Наконец я понял, что была проблема со свободным местом.
Так что вы можете удалить последнюю базу данных и развернуть вас жесткий диск или то, что я сделал, восстановил снимок виртуальной машины.
Просто в случае если кто-то думает, что это полезно