Mysql

Can t connect to local mysql server through socket tmp mysql socket: linux — error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’ — Missing /var/run/mysqld/mysqld.sock

Содержание

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (2)

При попытке подключиться к mysql я получаю следующую ошибку:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Есть ли решение для этой ошибки? В чем может быть причина?

mysql

sockets

connect

Поделиться

Источник


Atul    

15 декабря 2010 в 09:33

25 ответов




223

Вы подключаетесь к «localhost» или «127.0.0.1»? Я заметил, что при подключении к «localhost» используется разъем сокета, но при подключении к «127.0.0.1» используется разъем TCP/IP. Вы можете попробовать использовать «127.0.0.1», если разъем сокета не является enabled/working.

Поделиться


Jan Thomä    

15 декабря 2010 в 09:47



190

Убедитесь, что ваша служба mysql запущена

service mysqld start

Затем попробуйте выполнить одно из следующих действий:

(если вы не установили пароль для mysql)

mysql -u root

если вы уже установили пароль

mysql -u root -p

Поделиться


Haja Peer Mohamed H    

13 декабря 2012 в 14:01



27

Если ваш файл my.cnf (обычно в папке etc) правильно настроен с помощью

socket=/var/lib/mysql/mysql.sock

вы можете проверить, работает ли mysql со следующей командой:

mysqladmin -u root -p status

попробуйте изменить свое разрешение на папку mysql. Если вы работаете локально, вы можете попробовать:

sudo chmod -R 777 /var/lib/mysql/

это решило все для меня

Поделиться


marimaf    

10 ноября 2011 в 19:04




23

Сервер MySQL не работает или это не место расположения его файла сокета (проверьте my.cnf).

Поделиться


Dan Grossman    

15 декабря 2010 в 09:34



20

Скорее всего, mysql.sock не существует в /var/lib/mysql/ .

Если вы найдете тот же файл в другом месте, то символически свяжите его:

Например: у меня он есть в /data/mysql_datadir/mysql.sock

Переключите пользователя на mysql и выполните, как указано ниже:

su mysql

ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock

Это решило мою проблему

Поделиться


sreddy    

21 февраля 2012 в 20:29



16

Если вы находитесь на недавнем RHEL, вам может потребоваться запустить mariadb (открытый исходный код mysql дБ) вместо mysql дБ:

yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start

Тогда вы сможете получить доступ к mysql обычным способом:

mysql -u root -p

Поделиться


duhaime    

26 мая 2016 в 23:08



13

Просто отредактируйте /etc/my.cnf
и добавьте следующие строки в my.cnf

[mysqld]

socket=/var/lib/mysql/mysql.sock 

[client]

socket=/var/lib/mysql/mysql.sock

Перезагрузите mysql и снова подключитесь

mysql-u user-p password database-H host;

Поделиться


minhas23    

13 ноября 2013 в 17:31



13

В моем случае я переместил файл сокета в другое место внутри /etc/my.cnf
с /var/lib/mysql/mysql.sock на /tmp/mysql.sock

Даже после перезапуска службы mysqld я все еще вижу сообщение об ошибке при попытке подключения.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Проблема заключается в том, как настроен клиент. Запущенная диагностика фактически покажет правильный путь к сокету. например ps aux | grep mysqld

Работает:

mysql -uroot -p -h227.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock

Не работает:

mysql -uroot -p
mysql -uroot -p -hlocalhost

Вы можете исправить эту проблему, добавив ту же строку сокета в раздел [client] внутри конфигурации mysql.

Поделиться


Dejan    

21 октября 2013 в 17:23



12

Проверьте, работает ли ваш сервис mysqld или нет,если он не запущен, запустите его.

Если ваша проблема не решена, найдите /etc/my.cnf и измените следующим образом, где вы видите строку, начинающуюся с socket . Сделайте резервную копию этого файла перед выполнением этого обновления.

socket=/var/lib/mysql/mysql.sock  

Изменение

socket=/opt/lampp/var/mysql/mysql.sock -u root

Поделиться


vkGunasekaran    

13 июня 2011 в 08:21



7

Убедитесь, что у вас осталось достаточно места в /var . Если демон Mysql не может записать дополнительную информацию на диск, сервер mysql не запускается, и это приводит к ошибке Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Рассмотрите возможность использования

expire_logs_days = 10
max_binlog_size = 100M

Это поможет вам снизить использование диска.

Поделиться


Karthik    

14 мая 2013 в 15:37



7

MariaDB, сообщество, разработанное fork из MySQL, стало реализацией MySQL по умолчанию во многих дистрибутивах.

Так что сначала вы должны начать,

$ sudo systemctl start mariadb

Если это не удастся скорее попробуйте,

$ sudo systemctl start mysqld

Затем, чтобы начать mysql,

$ mysql -u root -p

По состоянию на сегодняшний день, в Fedora пакет называется mariadb
и в Ubuntu это называется mariadb-server .

Таким образом, вам, возможно, придется установить его, если он еще не установлен в вашей системе.

Поделиться


Gayan Weerakutti    

23 октября 2016 в 12:18



5

Вот что сработало для меня:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart

Поделиться


User    

25 февраля 2015 в 00:20



4

Пожалуйста, проверьте, работает ли другая служба mysql.

Поделиться


Kishore Relangi    

15 июня 2013 в 17:45



4

Убедитесь, что вы запустили сервер:

mysql.server start

Затем соединитесь с пользователем root:

mysql -uroot

Поделиться


Deniz Ozger    

31 марта 2014 в 22:07



3

Если ваш mysql ранее работал и внезапно остановился, просто «reboot» сервер.

Столкнулся с этой проблемой на моем CentOS VPS. ->

Постоянно получал

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2)

Перепробовал все методы, наконец-то перезапустив сервер, исправил проблемы ->

shutdown -r now

Надеюсь, это поможет !!

Поделиться


Shashank Agarwal    

12 ноября 2012 в 05:15



3

пробовать

echo 0 > /selinux/enforce

Поделиться


dvin    

16 сентября 2013 в 16:20



3

если вы меняете файлы в /var/lib/mysql [ например, копируете или заменяете это ], вы должны установить владельцу файлов значение mysql это так важно, если перезапуск mariadb.service был неудачным

Чаун -R mysql:mysql /var/lib/mysql/*

chmod -R 700 /var/lib/mysql/*

Поделиться


Mohsen Beiranvand    

12 ноября 2015 в 22:11



2

Сначала введите «service mysqld start» и войдите в систему

Поделиться


hPrasad    

07 мая 2013 в 03:30



2

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

Если вы используете CentOS 7, вот правильный способ его установки:

Прежде всего, добавьте источник сообщества mysql

yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

Затем вы можете установить его по yum install mysql-community-server

Начните его с systemctl: systemctl start mysqld

Поделиться


Zernel    

13 августа 2015 в 09:32



1

Обратите внимание, что в то время как mysql считывает информацию о местоположении socketfile из файла my.cnf, программа установки mysql_secure_installation, похоже, иногда делает это неправильно.

Поэтому, если вы похожи на меня и перетасовываете вещи во время установки, вы можете попасть в ситуацию, когда вы можете подключиться к базе данных с помощью mysql просто отлично, но эта вещь не может быть защищена (во всяком случае, не используя этот скрипт).

Чтобы исправить это, хорошо работает предложение от sreddy: сделайте софтлинк из того места, где скрипт ожидал бы сокет, туда, где он на самом деле находится. Пример:

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

(Я использую /tmp/ в качестве местоположения по умолчанию для сокетов)

Поделиться


Ellert van Koperen    

14 октября 2013 в 21:50



1

Это сработало для меня со следующими изменениями

Любой путь для сокета упоминается в [mysqld] и то же самое в [клиенте] в my.cnf и перезапуске mysql

[mysqld]
сокет=/var/lib/mysql/mysql.sock

[клиент]
сокет=/var/lib/mysql/mysql.sock

Поделиться


minhas23    

13 февраля 2014 в 04:13



1

Моя проблема заключалась в том, что я успешно установил mysql, и он работал нормально.

Но однажды произошла та же ошибка.

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock ‘ (2)

И никакого файла mysql.sock не существовало.

Это решение решило мою проблему, и mysql снова заработал:

Войдите в систему как root:

sudo su -

Бежать:

systemctl stop mysqld.service
systemctl start mysqld.service
systemctl enable mysqld.service

Тест как корень:

mysql -u root -p

mysql теперь должен быть запущен.

Я надеюсь, что это может помочь и кому-то еще.

Поделиться


bharald    

03 октября 2013 в 09:30



1

Один из способов воспроизвести эту ошибку: Если вы хотели подключиться к внешнему серверу, но вместо этого подключились к несуществующему локальному:

eric@dev ~ $ mysql -u dev -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through 
socket '/var/lib/mysql/mysql.sock' (2)
eric@dev ~ $

Таким образом, вы должны указать хост следующим образом:

eric@dev ~ $ mysql --host=yourdb.yourserver.com -u dev -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| information_schema      |
| mysql                   |
| performance_schema      |
+-------------------------+
3 rows in set (0.00 sec)

mysql> exit
Bye
eric@dev ~ $

Поделиться


Eric Leschinski    

28 июля 2014 в 14:12



1

Это может быть глупое предложение, но убедитесь, что ваш 100% все еще находится в localhost. Например, если сетевой администратор выбрал (или изменил) хостинг Amazon DB, вам понадобится это имя хоста!

Поделиться


The One and Only ChemistryBlob    

15 апреля 2016 в 15:52



1

В моем случае я импортировал новую базу данных, и после этого я не смог подключиться снова. Наконец я понял, что это космическая проблема.

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

На всякий случай, если кто-то сочтет это полезным

Поделиться


Evan    

21 января 2019 в 09:20


Похожие вопросы:

Не удается подключиться к локальному серверу MySQL через сокет

Я получаю следующую ошибку ошибка: не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (2)’ Как восстановить файл mysql.sock? [Редактировать] Я пытаюсь…

Не удается подключиться к локальному серверу MySQL через сокет

Я получаю следующую ошибку на своем сайте, когда загружаю его или отправляю страницу: mysql_real_escape_string() [function.mysql-real-escape-string]: не удается подключиться к локальному серверу…

Не удается подключиться к локальному серверу MySQL через сокет tmp/mysql.sock

Только что попробовав получить доступ к некоторым привилегиям mysqladmin в terminal (flush_hosts), я заметил, что проблема сокета всплыла с ошибкой Не удается подключиться к локальному серверу MySQL…

Не удается подключиться к локальному серверу MySQL через сокет homebrew

Недавно я попытался установить MySQL с homebrew ( brew install mysql ), и когда я пытаюсь запустить его, я получаю следующую ошибку: ERROR 2002 (HY000): не удается подключиться к локальному серверу…

Ошибка подключения mysql: не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (2) Godaddy Cpanel

Мой сайт работал нормально до вчерашнего дня. Но он вдруг начал показывать эту ошибку: Ошибка подключения mysql: не удается подключиться к локальному серверу MySQL через сокет…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (2) Fedora Linux

У меня есть проблема, описанная в названии. Я пробовал решения, приведенные здесь: невозможно войти в систему MYSQL получение ошибки ERROR 2002( HY000): Can’t подключение к локальному серверу…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock в сервере

Пожалуйста, помогите решить эту ошибку PDOException: SQLSTATE[HY000] [2002] не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (111) в lock_may_be_available()…

Mysql2::Error at / не удается подключиться к локальному серверу MySQL через сокет ‘/var/run/mysqld/mysqld.sock’ (2)

Я пытаюсь подключиться к серверу mysql, работающему на машине Fedora, прослушивающей порт 3306 в сокете / var/lib/mysql/mysql.sock Клиент mysql — это приложение ROR, которое было запущено на машине…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock'(111) , даже если существует /var/lib/mysql/mysql.sock

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’, даже если существует /var/lib/mysql/mysql.sock. Вещи в руках: Файл my.cnf указывает на…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ -Centos 7.1

Бревна: 20088:20180822:152017.613 не удается отправить список активных проверок на «127.0.0.1»: хост [Zabbix сервер] не отслеживается 20100:20180822:152202.973 [Z3005] запрос не удалось:…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/mysql/mysql.sock’ (38)

У меня возникли большие проблемы при попытке подключиться к mysql. Когда я выполняю:

/usr/local/mysql/bin/mysql start

У меня есть следующая ошибка :

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

У меня есть mysql.sock в каталоге /var/mysql .

В /etc/my.cnf году у меня есть:

[client]
port=3306
socket=/var/mysql/mysql.sock

[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

и в /etc/php.ini году у меня есть :

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock

Я перезапустил apache, используя sudo /opt/local/apache2/bin/apachectl restart

Но у меня все еще есть ошибка.

В противном случае я не знаю, имеет ли это отношение к делу, но когда я делаю mysql_config --sockets , я получаю

--socket         [/tmp/mysql.sock]

mysql

Поделиться

Источник


Lambivist    

21 марта 2011 в 10:33

25 ответов




218

Если ваш файл my.cnf (обычно в папке /etc/mysql/) правильно настроен с помощью

socket=/var/lib/mysql/mysql.sock

вы можете проверить, работает ли mysql со следующей командой:

mysqladmin -u root -p status

попробуйте изменить свое разрешение на папку mysql. Если вы работаете локально, вы можете попробовать:

sudo chmod -R 755 /var/lib/mysql/

это решило все для меня

Поделиться


marimaf    

10 ноября 2011 в 19:08



94

вы уверены, что установили mysql, а также mysql сервер?.

Например, для установки сервера mySql я использую yum или apt для установки как инструмента командной строки mysql, так и сервера:

yum -y install mysql mysql-server (or apt-get install mysql mysql-server)

Включите службу MySQL:

/sbin/chkconfig mysqld on

Запустите сервер MySQL:

/sbin/service mysqld start

после этого установите пароль MySQL root:

mysqladmin -u root password 'new-password' (with the quotes)

Надеюсь, это поможет.

Поделиться


Waqas    

24 июня 2012 в 13:55



79

Быстрый обходной путь, который сработал для меня: попробуйте использовать локальный ip-адрес (127.0.0.1) вместо ‘localhost’ в mysql_connect(). Это «forces» php для подключения через TCP / IP вместо сокета unix.

Поделиться


Maurizio    

01 декабря 2011 в 10:18




51

Я получил следующую ошибку

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

Попробовал несколько способов и в конце концов решил эту проблему следующим образом

sudo gksu gedit /etc/mysql/my.cnf

модифицированный

#bind-address       = 127.0.0.1

к

bind-address        = localhost

и перезапустил

sudo /etc/init.d/mysql restart

он работал

Поделиться


AnupRaj    

14 июля 2012 в 11:37



31

Убедитесь, что вы используете mysqld: /etc/init.d/mysql start

Поделиться


Zorayr    

11 мая 2012 в 04:37



18

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

shutdown -h now

Это остановит запущенные службы перед выключением компьютера.

Основываясь на Centos, дополнительный способ вернуть его обратно, когда вы столкнетесь с этой проблемой, — это переместить mysql.sock:

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

service mysqld start

Перезапуск службы создает новую запись с именем mqsql.sock

Поделиться


Ali Hashemi    

19 декабря 2013 в 10:50



15

Я получил эту ошибку, когда установил задание cron для своего файла. Я изменил права доступа к файлу на 777 , но это все еще не работало для меня. Наконец я нашел решение. Может быть, это будет полезно для других.

Попробуйте выполнить эту команду:

mysql-h 127.0.0.1-P 3306-u root -p

Помните, что-h означает хост, — P- порт , а-p-пароль.

Поделиться


Doulat Khan    

01 декабря 2016 в 14:52



12

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

Например, на Ubuntu вы должны проверить /var/log/syslog . Поскольку многие другие вещи также могут быть записаны в этот файл, вы, вероятно, захотите использовать grep для просмотра mysql сообщений и tail для просмотра только самых последних. Все вместе это может выглядеть так:

grep mysql /var/log/syslog | tail -50

Не вносите слепо изменения в свою конфигурацию, потому что кто-то другой сказал: «Это сработало для моей системы». выясните, что на самом деле не так с вашей системой, и вы получите лучший результат гораздо быстрее.

Поделиться


matt2000    

16 декабря 2015 в 19:33



11

Другим обходным путем является редактирование /etc/my.cnf и включение хоста в раздел [клиент]

 [client]
 #password       = your_password
 host            = 127.0.0.1
 port            = 3306
 socket          = /var/run/mysql/mysql.sock

А затем перезапустить службу mysql.

Этот обходной путь был протестирован в: Server version: 5.5.25a-log Source distribution

Поделиться


theshadow    

10 января 2013 в 17:25



7

У меня была та же проблема, и она была вызвана обновлением драйверов mysql, когда сервер mysql был запущен.
Я исправил это, просто перезапустив оба mysql и apache2:

sudo служба mysql остановка

sudo сервис mysql старт

sudo обслуживание apache2 остановка

Услуги по sudo apache2 начать

Поделиться


fustaki    

20 января 2013 в 18:08



6

В моем случае я использовал Centos 5.5. Я обнаружил, что проблема заключалась в том, что служба mysql была каким-то образом остановлена.
Поэтому я запустил службу mysql с помощью команды:

 /etc/init.d/mysqld start

Так что … глупая ошибка.

Поделиться


Shyamkkhadka    

18 января 2013 в 09:38



6

Если все работало просто отлично, и вы только начали видеть эту ошибку, прежде чем делать что-либо еще, убедитесь, что у вас нет свободного места на диске:

df -h

Если том, на котором создается mysql.sock, находится в состоянии 100% use, MySql не сможет его создать, и это будет причиной этой ошибки. Все, что вам нужно сделать, это удалить то, что вам не нужно, например старые файлы журналов.

Поделиться


Derek Gogol    

29 июля 2014 в 18:05



6

попробуйте использовать -h (хост) и-P(порт):

mysql -h 127.0.0.1 -P 3306 -u root -p

Поделиться


Ramil Mammadov    

19 июня 2015 в 12:33



5

sudo service mysql start

Это должно сослужить вам хорошую службу. Возможно, вы изменили некоторые команды, которые повлияли на конфигурацию mysql.

Поделиться


shimanyi    

23 января 2015 в 08:27



5

Есть много решений этой проблемы, но для моей ситуации мне просто нужно было исправить DATE на машине/сервере ( Ubuntu 16.04 Server ).

i) проверьте дату вашего сервера и исправьте ее.

ii) выполнить sudo /etc/init.d/mysql restart

Это должно было все начать.

Поделиться


Huey Mataruse    

29 сентября 2016 в 10:34



4

Я получал ошибку, потому что я запускал MAMP, а мой файл .sock находился в другом месте. Я просто добавил символическую ссылку, где, по мнению приложения, она должна быть, указывающую на то, где она на самом деле находится, и это сработало как заклинание.

Поделиться


Devin Henkel-Legare    

07 июля 2012 в 05:55



4

Я также обнаружил, что это была проблема с разрешениями. Я сравнил файлы MySQL с рабочей установкой (как на Debian 6 squeeze) и должен был внести следующие изменения в собственность (где mydatabase -это любая база данных, которая у вас есть).

Право собственности mysql:mysql :

chown mysql:mysql /var/lib/mysql
chown mysql:mysql /var/lib/mysql/ib*
chown mysql:mysql /var/lib/mysql/mydatabase
chown mysql:mysql /var/lib/mysql/mydatabase/*
chown mysql:mysql /var/lib/mysql/mysql/* 

Право собственности mysql:root :

chown mysql:root /var/lib/mysql/mysql
chown mysql:root /var/run/mysqld 

Право собственности mysql:adm :

chown mysql:adm /var/log/mysql
chown mysql:adm /var/log/mysql.err
chown mysql:adm /var/log/mysql.log* 

Поделиться


SharpC    

23 июня 2013 в 13:50



4

Если вы используете микро-версию AWS (Amazon Web Services), то это проблема с памятью. Когда я бежал

mysql

из terminal он сказал бы

ERROR 2002 (HY000): Can't connect to local MySQL server through socket /var/run/mysqld/mysqld.sock' (111)

Поэтому я попробовал следующее, И оно просто провалилось.

service mysqld restart

После долгих поисков я обнаружил, что вам нужно создать файл подкачки для MySQL, чтобы иметь достаточно памяти. Инструкции перечислены ниже: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html .

Затем я смог перезапустить mysqld.

Поделиться


jth_92    

05 сентября 2013 в 12:19



4

Для меня — это был просто случай, когда MySQL занимал много времени для загрузки. У меня есть более 100 000 таблиц в одной из моих баз данных, и в конце концов это началось, но в данном случае, очевидно, должно занять много времени.

Поделиться


Antony    

23 мая 2017 в 21:10



3

вы всегда можете запустить сервер mysql, указав местоположение файла mysql.sock с помощью опции --socket , например

mysql --socket=/var/mysql/mysql.sock 

Это будет работать, даже если расположение файла сокета указано в другом месте в файле my.cnf.

Поделиться


David Okwii    

25 июня 2012 в 10:16



3

Для тех, у кого какое-либо решение не сработало, попробуйте:

cd /etc/mysql

проверьте, присутствует ли my.cnf

nano my.cnf

и убедитесь, что у вас есть только один bind-адрес следующим образом:

bind-address = 127.0.0.1

Если нет, то это может быть проблемой, просто выйдите из nano и сохраните файл.

и service mysql start

обратите внимание, что если у вас нет nano (это текстовый редактор), просто установите его с помощью apt-get install nano и один раз просто нажмите Ctrl+X, чтобы выйти, не забудьте сказать Y, чтобы сохранить и использовать тот же файл)

Поделиться


Jack M.    

24 октября 2014 в 07:21



3

У меня тоже была эта проблема, когда я пытался запустить сервер, поэтому многие ответы здесь, которые просто говорят, чтобы запустить сервер, не работали. Первое, что вы можете сделать, это выполнить следующее, чтобы увидеть, есть ли какие-либо ошибки конфигурации:

/usr/sbin/mysqld --verbose --help 1>/dev/null

У меня действительно была одна ошибка, которая обнаружилась:

160816 19:24:33 [Note] /usr/sbin/mysqld (mysqld 5.5.50-0ubuntu0.14.04.1-log) starting as process 9461 ...
160816 19:24:33 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
160816 19:24:33 [Note] Plugin 'FEDERATED' is disabled.
160816 19:24:33 [ERROR] /usr/sbin/mysqld: unknown variable 'innodb-online-alter-log-max-size=4294967296'
160816 19:24:33 [ERROR] Aborting

Простой grep -HR "innodb-online-alter-log-max-size" /etc/mysql/ показал мне, какой именно файл содержит оскорбительную строку, поэтому я удалил эту строку из файла.

Затем, проверяя свой файл /var/log/mysql/error.log , который у меня был:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 671088640 bytes!
160816 22:46:46 [ERROR] Plugin 'InnoDB' init function returned error.
160816 22:46:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160816 22:46:46 [ERROR] Unknown/unsupported storage engine: InnoDB
160816 22:46:46 [ERROR] Aborting

Исходя из этого вопроса , принятое решение не сработало бы, потому что я даже не мог запустить сервер, поэтому я последовал тому, что было сказано в некоторых комментариях, и удалил свои файлы /var/lib/mysql/ib_logfile0 и /var/lib/mysql/ib_logfile1 .

Это позволило серверу запуститься, и я смог подключаться и выполнять запросы, однако, проверяя мой файл журнала ошибок, он быстро заполнялся несколькими десятками тысяч строк, подобных этой:

160816 22:52:15  InnoDB: Error: page 1415 log sequence number 82039318708
InnoDB: is in the future! Current system log sequence number 81640793100.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.

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

$ mysqldump -u root -p --allow-keywords --add-drop-database --comments --hex-blob --opt --quote-names --databases db_1 db_2 db_3 db_etc > backup-all-databases.sql
$ mysql -u root -p < backup-all-databases.sql

Похоже, теперь все работает так, как и ожидалось.

Поделиться


Mike    

17 августа 2016 в 06:39



2

Добавление

--protocol=tcp 

чтобы список праматеров в вашей связи работал на меня.

Поделиться


barryred    

07 ноября 2012 в 14:47



2

Это было достаточно хорошо для меня

sudo /etc/init.d/mysql restart

Поделиться


Vikram    

06 августа 2013 в 11:39



2

Сегодня я столкнулся с этой проблемой. Ни один из этих ответов не дал исправления. Мне нужно было выполнить следующие команды (найденные здесь https://stackoverflow.com/a/20141146/633107 ), чтобы запустить мою службу mysql:

sudo /etc/init.d/mysql stop
cd /var/lib/mysql/
ls ib_logfile*
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
... etc ...
/etc/init.d/mysql restart

На это отчасти указывали следующие ошибки в /var/log/mysql/error.log:

140319 11:58:21 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
140319 11:58:21 [ERROR] Plugin 'InnoDB' init function returned error.
140319 11:58:21 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140319 11:58:21 [ERROR] Unknown/unsupported storage engine: InnoDB
140319 11:58:21 [ERROR] Aborting

Я также видел полную ошибку диска, но только при выполнении команд без sudo. Если проверка разрешений завершается неудачно, он сообщает о заполнении диска (даже если ваш раздел даже близко не заполнен).

Поделиться


Splaktar    

19 марта 2014 в 18:05


Похожие вопросы:

Не удается подключиться к локальному серверу MySQL через сокет

Я получаю следующую ошибку ошибка: не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (2)’ Как восстановить файл mysql.sock? [Редактировать] Я пытаюсь…

Не удается подключиться к локальному серверу MySQL через сокет

Я получаю следующую ошибку на своем сайте, когда загружаю его или отправляю страницу: mysql_real_escape_string() [function.mysql-real-escape-string]: не удается подключиться к локальному серверу…

Не удается подключиться к локальному серверу MySQL через сокет tmp/mysql.sock

Только что попробовав получить доступ к некоторым привилегиям mysqladmin в terminal (flush_hosts), я заметил, что проблема сокета всплыла с ошибкой Не удается подключиться к локальному серверу MySQL…

Ошибка 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет ‘/tmp/mysql.sock’

Я установил MySQL на Mac OS X Mountain Lion с homebrew install mysql , но когда я попробовал mysql -u root , я получил следующую ошибку: ERROR 2002 (HY000): не удается подключиться к локальному…

Не удается подключиться к локальному серверу MySQL через сокет homebrew

Недавно я попытался установить MySQL с homebrew ( brew install mysql ), и когда я пытаюсь запустить его, я получаю следующую ошибку: ERROR 2002 (HY000): не удается подключиться к локальному серверу…

FreeBSD ERROR 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет ‘/tmp/mysql.sock’ (2)

Не могу запустить mysql .. ERROR 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет ‘/tmp/mysql.sock (2) Я использую mysql51. Я пробовал переустановить, но ничего не…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock в сервере

Пожалуйста, помогите решить эту ошибку PDOException: SQLSTATE[HY000] [2002] не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ (111) в lock_may_be_available()…

OperationalError: не удается подключиться к локальному серверу MySQL через сокет

Я пытаюсь запустить сервер в python/django и я получаю следующее сообщение об ошибке: django.db.uils.OperationslError: (200, не удается подключиться к локальному серверу MySQL через сокет…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock'(111) , даже если существует /var/lib/mysql/mysql.sock

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’, даже если существует /var/lib/mysql/mysql.sock. Вещи в руках: Файл my.cnf указывает на…

Не удается подключиться к локальному серверу MySQL через сокет ‘/var/lib/mysql/mysql.sock’ -Centos 7.1

Бревна: 20088:20180822:152017.613 не удается отправить список активных проверок на «127.0.0.1»: хост [Zabbix сервер] не отслеживается 20100:20180822:152202.973 [Z3005] запрос не удалось:…

Устраняем типичные ошибки в MySQL

MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.

Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».

Эта ошибка означает, что на хосте не запущен сервер MySQL (mysqld) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.

$ ps xa | grep mysqld | grep -v mysqld

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

$ sudo systemctl start mysql        #Debian/Ubuntu
$ sudo systemctl start mysqld       #RHEL/CentOS/Fedora

Чтобы проверить состояние службы MySQL, используйте следующую команду:

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.

$ sudo systemctl restart mysql
$ sudo systemctl status mysql

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

Для поиска порта, который прослушивается сервером, используйте команду netstat.

$ sudo netstat -tlpn | grep "mysql"

Не удаётся подключиться к серверу MySQL

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

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

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

ERROR 2003: Cannot connect to MySQL server on 'host_name' (111)
ERROR 2002: Cannot connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):

В консоли вводим команду:

mysql -u root -p

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

> SHOW GRANTS FOR 'tecmint'@'localhost';

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB  больше, чем max_allowed_packet.

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout.

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

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

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections. Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

Недостаточно памяти

Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.

Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:

  • если клиент MySQL используется напрямую, запустите его с ключом --quick switch, чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.

[mysqld]
max_connections=1000

MySQL продолжает «падать»

Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

$ sudo mysqladmin version -p 

Или

$ sudo mysqladmin -i 5 status

Заключение

Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:

  • Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге /var/log/mysql/. Вы можете использовать утилиты командной строки вроде tail для чтения файлов журнала.
  • Если служба MySQL не запускается, проверьте её состояние с помощью systemctl. Или используйте команду journalctl (с флагом -xe) в systemd.
  • Вы также можете проверить файл системного журнала (например, /var/log/messages) на предмет обнаружения ошибок.
  • Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
  • Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
  • Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: mysqladmin -u root ping или mysqladmin -u root processlist, чтобы получить от него ответ.
  • Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.

Перевод статьи «Useful Tips to Troubleshoot Common Errors in MySQL»

Не удается подключиться к локальному серверу MySQL через сокет homebrew

Поскольку я потратил довольно много времени, пытаясь решить эту проблему, и всегда возвращался на эту страницу при поиске этой ошибки, я оставлю свое решение здесь, надеясь, что кто-то сэкономит время, которое я потерял. Хотя в моем случае я использую mariadb, а не MySql, вы все равно сможете адаптировать это решение под свои нужды.

Моя проблема

то же самое, но мои настройки немного отличаются (mariadb вместо mysql):

Установил mariadb с homebrew

  $ brew установить mariadb
  

Запустил демон

  $ старт пивоварения мариадб
  

Пытался подключиться и получил указанную выше ошибку

  $ mysql -uroot
ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/ tmp / mysql.носок '(2)
  

Мое решение

узнайте, какие файлы my.cnf используются mysql (как предлагается в этом комментарии):

  $ mysql --verbose --help | grep my.cnf
/usr/local/etc/my.cnf ~ / .my.cnf
                        порядок предпочтения, my.cnf, $ MYSQL_TCP_PORT,
  

проверьте, где запущен файл сокета Unix (почти как описано здесь):

  $ netstat -ln | grep mariadb
.... / usr / local / mariadb / data / mariadb.носок
  

(вы можете использовать grep mysql вместо mariadb)

Добавьте найденный вами файл сокета в ~ / .my.cnf (при необходимости создайте файл) (при условии, что ~ / .my.cnf был указан при запуске команды mysql --verbose ... из выше):

  [клиент]
socket = /usr/local/mariadb/data/mariadb.sock
  

Перезагрузите свой mariadb:

  $ варочные услуги перезапуск мариадб
  

После этого я смог запустить mysql и получил:

  $ mysql -uroot
ОШИБКА 1698 (28000): доступ запрещен для пользователя root @ localhost
  

Поэтому я запускаю команду с привилегиями суперпользователя и после ввода пароля получил:

  $ sudo mysql -uroot
MariaDB [(нет)]>
  

Примечания:

  1. Я не совсем уверен насчет групп, в которые нужно добавить сокет, сначала у меня был [клиент-сервер], но потом я решил, что [client] должно быть достаточно.Я изменил его, и он все еще работает.

  2. При работе mariadb_config | grep socket я получаю:
    - сокет [/tmp/mysql.sock]
    что немного сбивает с толку, поскольку кажется, что /usr/local/mariadb/data/mariadb.sock — это фактическое место (по крайней мере, на моей машине)

  3. Интересно, где я могу настроить /usr/local/mariadb/data/mariadb.sock как /tmp/mysql.sock , чтобы я мог использовать настройки по умолчанию вместо того, чтобы редактировать свой .my.cnf (но я слишком устал, чтобы понять это …)

  4. В какой-то момент я также делал вещи, упомянутые в других ответах, прежде чем придумать это.

Не удается подключиться к локальному серверу MySQL через сокет [решено]

Если вы столкнетесь с этим сообщением об ошибке при попытке подключиться к локальному серверу MySQL:

  ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock'
  

Это означает, что либо сервер MySQL не установлен / не запущен, либо файл mysql.sock не существует в / var / lib / mysql / .

Есть несколько решений этой ошибки.

1. Сначала проверьте, запущена ли служба mysqld или нет. Если нет, запустите:

Затем попробуйте подключиться еще раз.

2. Попробуйте подключиться к 127.0.0.1 вместо localhost

Если вы подключаетесь к localhost , он будет использовать разъем сокета, но если вы подключаетесь к 127.0.0.1 будет использоваться разъем TCP / IP. Поэтому, когда разъем сокета не работает, попробуйте вместо этого подключиться к 127.0.0.1 .

3. Редактировать файл my.cnf

Найдите файл my.cnf (обычно в / etc / ) для редактирования и добавьте следующую строку:

  [mysqld]

сокет = / var / lib / mysql / mysql.sock

[клиент]

сокет = / var / lib / mysql / mysql.sock
  

Перезапустите mysql и снова подключитесь.

4.Симлинк

В некоторых случаях ваш mysql.sock может находиться в другой папке. Вы должны найти его и создать символическую ссылку. Вы можете найти его в /tmp/mysql.sock или /data/mysql_datadir/mysql.sock

Например, ваш файл находится в /tmp/mysql.sock

Затем символическая ссылка:

  ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
  

Перезапустите mysql и снова подключитесь.


Нужен хороший инструмент с графическим интерфейсом для MySQL? TablePlus — это современный собственный инструмент с элегантным пользовательским интерфейсом, который позволяет одновременно управлять несколькими базами данных, такими как MySQL, PostgreSQL, SQLite, Microsoft SQL Server и другими.

Загрузить TablePlus для Mac .

Не на Mac? Загрузить TablePlus для Windows .

В Linux? Загрузить TablePlus для Linux

Требуется быстрое редактирование на ходу? Загрузите TablePlus для iOS .

Не удается подключиться к локальному серверу MySQL через сокет [решено и исправлено]

Не удается подключиться к локальному серверу MySQL через сокет '/ var / mysql / mysql.носок '(38)
 

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

Тогда у вас есть те, у которых мы испытываем ту же проблему с их веб-приложениями, особенно с теми, которые созданы с использованием PHP.

Например, внезапно веб-сайт отказывается работать, и когда вы заглядываете в файл журнала, вы видите записанное там сообщение об ошибке, подобное этому:

 
SQLSTATE [HY000] [2002] Не удается подключиться к локальному серверу MySQL через сокет.
  '/ var / run / mysqld / mysqld.носок'
 

[СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ]: Быстрый веб-хостинг MySQL и PHP

[ПРЕИМУЩЕСТВА]:

  • БЕСПЛАТНАЯ установка приложений с открытым исходным кодом, блогов, CMS и многого другого в один клик!
  • Поддержка PHP, MySQL, WordPress, Drupal, Joomla и многого другого!
  • Многодоменный хостинг и гарантия бесперебойной работы 99,9%!
  • Супер быстрые серверы с круглосуточной технической поддержкой без выходных!

Щелкните здесь, чтобы получить доступ к этому [СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ]

Как исправить ошибку «Невозможно подключиться к локальному серверу MySQL через сокет»

Итак, как исправить эту ошибку не может подключиться к локальному серверу mysql через сообщение об ошибке сокета ?

Итак, вот несколько шагов, которые необходимо предпринять для решения этой проблемы:

Решение № 1: проверьте, запущена ли служба MySQL

Прежде всего, проверьте, работает ли служба mysqld или нет.Чтобы проверить, запущен ли MySQL, выполните следующую команду:

 
mysqladmin -u root -p статус
 

И если служба не запущена, то непременно запустите ее, выполнив следующую команду:

 
запуск службы mysqld
 

После перезапуска службы попробуйте еще раз подключиться к MySQL.

Решение № 2: Подключитесь к 127.0.0.1

Еще одно возможное решение для > не удается подключиться к локальному серверу mysql через сокет > сообщение об ошибке - это попытаться подключиться к MySQL с помощью 127.0.0.1 IP-адрес вместо localhost .

Когда вы используете localhost для подключения к MySQL, операционная система использует разъем сокета.

Однако, если вы используете IP-адрес 127.0.0.1 , операционная система будет использовать соединитель TCP / IP.

Таким образом, в качестве возможного решения при возникновении проблем с разъемом сокета вы можете попытаться установить соединение с использованием TCP / IP, указав IP-адрес 127.0.0.1 вместо localhost .

Решение № 3. Измените файл my.cnf

Файл my.cnf - это файл конфигурации, используемый MySQL. И он обрабатывается службой mysqld или mysqladmin в зависимости от указанных параметров.

Итак, найдите этот файл my.cnf , который обычно находится в каталоге / etc / , и измените его соответствующим образом следующим образом:

 
[mysqld]

сокет = / var / lib / mysql / mysql.sock

[клиент]

сокет = / var / lib / mysql / mysql.носок
 

После изменения файла перезапустите службу MySQL и попробуйте подключиться снова.

Решение №4: Проверьте расположение mysql.sock

Другой возможной причиной этой проблемы является то, что файл mysql.sock находится в другом каталоге.

Итак, вам нужно найти файл mysql.sock и создать на него символическую ссылку.

В большинстве случаев файл находится в каталоге /data/mysql_datadir/mysql.sock или /tmp/mysql.sock

Так, например, если вы разместите файл в каталоге / data / mysql_datadir / mysql.sock , все, что вам нужно сделать, это создать для него символическую ссылку, используя следующую команду:

 
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
 

После этого перезапустите службу MySQL и попробуйте снова установить соединение.

[СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ]: Быстрый веб-хостинг MySQL и PHP

[ПРЕИМУЩЕСТВА]:

  • БЕСПЛАТНАЯ установка приложений с открытым исходным кодом, блогов, CMS и многого другого в один клик!
  • Поддержка PHP, MySQL, WordPress, Drupal, Joomla и многого другого!
  • Многодоменный хостинг и 99.Гарантия 9% времени безотказной работы!
  • Супер быстрые серверы с круглосуточной технической поддержкой без выходных!

Щелкните здесь, чтобы получить доступ к этому [СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ]

Решение № 5: Изменить разрешение папки MySQL

Существует еще одно возможное решение, устраняющее эту проблему, и это изменение разрешения папки MySQL.

Это легко сделать, выполнив следующую команду, если вы работаете в локальной среде:

 
судо chmod -R 755 / var / lib / mysql /
 

, после чего вы можете перезапустить службу mysql:

 
запуск службы mysqld
 

Затем попробуйте снова установить соединение.

Решение № 6: Несколько экземпляров MySQL

В некоторых случаях установка нескольких MySQL в серверной среде вызывает эту проблему.

Итак, у вас есть случай, когда несколько экземпляров MySQL работают одновременно.

Таким образом, проблема может быть решена с помощью следующих команд:

 
пс -A | grep mysql
 

Затем завершите процесс mysql , выполнив эту команду:

 
sudo pkill mysql
 

Затем сделайте то же самое для mysqld :

 
пс -A | grep mysqld
 

Опять же, убиваем и этот процесс:

 
sudo pkill mysqld
 

Наконец, запустите следующие команды для перезапуска и подключения к серверу MySQL:

 
перезапуск службы sudo mysql
mysql -u корень -p
 

Заключение о невозможности подключения к локальному серверу MySQL через сокет

Мы надеемся, что одно из приведенных выше возможных решений для не может подключиться к локальному серверу mysql через сокет , которое разрешит вашу ситуацию.

[СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ]: Быстрый веб-хостинг MySQL и PHP

[ПРЕИМУЩЕСТВА]:

  • БЕСПЛАТНАЯ установка приложений с открытым исходным кодом, блогов, CMS и многого другого в один клик!
  • Поддержка PHP, MySQL, WordPress, Drupal, Joomla и многого другого!
  • Многодоменный хостинг и гарантия бесперебойной работы 99,9%!
  • Супер быстрые серверы с круглосуточной технической поддержкой без выходных!

Щелкните здесь, чтобы получить доступ к этому [СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ]

Как решить ошибку «Не удается подключиться к локальному серверу MySQL через сокет»?

Как решить ошибку «Не удается подключиться к локальному серверу MySQL через сокет»? — Обмен стеками администраторов баз данных

Сеть обмена стеков

Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.

Посетить Stack Exchange

  1. 0

  2. +0

  3. Авторизоваться
    Подписаться

Database Administrators Stack Exchange — это сайт вопросов и ответов для специалистов по базам данных, которые хотят улучшить свои навыки работы с базами данных и учиться у других в сообществе.Регистрация займет всего минуту.

Зарегистрируйтесь, чтобы присоединиться к этому сообществу

Кто угодно может задать вопрос

Кто угодно может ответить

Лучшие ответы голосуются и поднимаются наверх

Спросил

Просмотрено
318к раз

На этот вопрос уже есть ответы :

Закрыт 2 года назад.

Я продолжал получать эту следующую ошибку каждый раз, когда пытался перезапустить MySql. Он работал нормально до того, как я изменил каталог данных по умолчанию.

ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет ‘/ var / lib /mysql/mysql.sock’ (111)

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

Создан 21 апр.

MahuLovzYouMahuLovzYou

12111 золотой знак11 серебряных знаков33 бронзовых знака

2

Проверьте следующее

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

    пс топор | grep mysql

  2. Затем проверьте, есть ли у вашего файла my.cnf (вероятно, в папке / etc / mysql /) правильно настроен с


  [mysqld]
datadir = / вар / библиотека / mysql /
сокет = /var/lib/mysql/mysql.sock
  
  1. Затем вы изменили каталог данных по умолчанию, дали ли вы правильные разрешения для нового каталога сейчас
  chown mysql: mysql -R / var / lib / mysql / *.
 chmod 755 -R / var / lib / mysql / *
  
  1. После изменения разрешения перезапустите службу и проверьте

    перезапуск службы mysql

Создан 22 апр.

0

Моя проблема заключалась в том, что одновременно выполнялось несколько процессов mysql.

Сначала завершите процессы с помощью:

  sudo pkill mysql
  

и

  sudo pkill mysqld
  

перезапустить mysql

  sudo перезапуск службы mysql
  

теперь вы можете войти в систему

  mysql -u корень -p
  

Создан 29 апр.

Омар ЗаириОмар Заири

6111 серебряный знак22 бронзовых знака

0

Похоже, что файл сокета отсутствует. service mysql stop и service mysql restart зависят от существования файла сокета для завершения работы.

Вам нужно будет подключиться к mysql с помощью mysqladmin и TCP / IP для завершения работы

  MYSQL_USER = корень
MYSQL_PASS = пароль root
MYSQL_CONN = "- h227.0.0.1 -u $ {MYSQL_USER} -p $ {MYSQL_PASS} --protocol = tcp -P3306"
mysqladmin $ {MYSQL_CONN} выключение
запуск службы mysql
  

У меня есть сообщения о таких отключениях

Создан 21 апр.’15 в 23: 132015-04-21 23:13

RolandoMySQLDBARolandoMySQLDBA

164k2929 золотых знаков270270 серебряных знаков462462 бронзовых знака

Привет, я только что установил zabbix 3.0 и такая же проблема появилась несколько часов назад. Когда я проверял разрешение zabbix в phpmyadmin, я понял, что для пользователя «zabbix» нет разрешения. Я дал Grand разрешение на zabbix, и проблема решена. Это может быть кому-то полезно.

Создан 09 мар.

tuncmtuncm

2111 бронзовый знак

У меня та же ошибка, но по простой причине: в системе закончилось все место на диске.

Создан 12 июн.

Ханну

2911 бронзовый знак

0

Я тоже получал ту же ошибку «ОШИБКА 2002 (HY000): Не могу подключиться к локальному серверу MySQL через сокет ‘/ var / lib / mysql / mysql.sock ‘(111) «. Я несколько раз удалял и переустанавливал MySQl и потратил несколько часов на устранение этой проблемы. Проблема, которую я замечаю, возникает, когда я добавляю учетные данные в файл параметров my.cnf, расположенный в / etc / my .cnf, так как это вызовет проблемы MySQL с запуском служб и выдаст ошибку.

Чтобы решить эту проблему, я удалил учетные данные из файла параметров my.cnf в /etc/my.cnf и создал файл параметров .my.cnf в домашнем каталоге. Например, / home / username /.my.cnf в Linux (замените имя пользователя своим именем пользователя в Linux) и добавьте туда учетные данные. После этого проблем нет.

Создан 22 янв.

Проверьте свою службу mysql или, если вы получаете доступ через ssh, попробуйте запустить:

sudo / etc / init.d / mysql start

RLF

13.5k22 золотых знака2828 серебряных знаков4242 бронзовых знака

Создан 13 июл.

1

lang-sql

Stack Exchange для администраторов баз данных лучше всего работает с включенным JavaScript

Ваша конфиденциальность

Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в ​​отношении файлов cookie.

Принимать все файлы cookie

Настроить параметры

Не удается подключиться к локальному серверу MySQL через сокет

Я пытался настроить производительность работающего mysql-сервера, выполнив эту команду:

  mysqld_safe --key_buffer_size = 64M --table_cache = 256 --sort_buffer_size = 4M --read_buffer_size = 1M &
  

После этого я не могу подключить mysql с сервера, на котором запущен mysql.Я получаю эту ошибку:

  ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (111)
  

Однако, к счастью, я все еще могу подключиться к mysql удаленно. Таким образом, все мои веб-серверы по-прежнему имеют доступ к mysql и работают без каких-либо проблем. Из-за этого, хотя я не хочу пытаться перезапустить сервер mysql, поскольку это, вероятно, все испортит.

Теперь я знаю, что mysqld_safe запускает mysql-сервер, и, поскольку сервер mysql уже был запущен, я предполагаю, что это какая-то проблема с двумя запущенными серверами mysql и прослушиванием одного и того же порта.

Есть ли способ решить эту проблему без перезапуска исходного сервера mysql?

ОБНОВЛЕНИЕ :
Это то, что пс xa | grep «mysql» говорит:

  11672? S 0:00 / бен / ш / USR / бен / mysqld_safe
11780? Sl 175: 04 / usr / sbin / mysqld --basedir = / usr --datadir = / var / lib / mysql --user = mysql --pid-file = / var / run / mysqld / mysqld.pid --socket = / var / run / mysqld / mysqld.sock --port = 3306
11781? S 0:00 регистратор -t mysqld -p daemon.ошибка
12432 балла / 0 R + 0:00 grep mysql
  

ОБНОВЛЕНИЕ 2 :
Пытался перезапустить сейчас. Остановка работала нормально, но запуск не удался. К моему удивлению, mysql-сервер все еще работает без проблем, поэтому я действительно не знаю, что он остановил.

ОБНОВЛЕНИЕ 3 :
Я почти уверен, что это проблема сейчас: когда я запустил mysql в первый раз, он записал свой идентификатор процесса в /var/run/mysqld/mysqld.pid, а сокет в /var/run/mysqld/mysqld.sock.

Затем, когда я запустил команду mysqld_safe, она удалила эти файлы.Теперь я не могу остановить mysql-сервер, так как команде остановки нужны эти файлы. Есть ли способ восстановить эти файлы? Думаю, pid-файл — это просто файл с идентификатором процесса? Я не хочу просто убивать процесс, потому что на этот сервер очень много записей, а уничтожение mysql обычно заканчивается повреждением баз данных.

Не удается подключиться к локальному серверу MySQL через сокет ‘/tmp/mysql_2.sock’ во время ручной установки mysql

Я получаю указанную ниже ошибку при попытке вручную установить mysql-5.6.17-Linux-glibc2.5-x86_64

Шагов, которые я сделал:

  1. tar -xzvf mysql-standard-5.1.34-linux-i686-glibc23.tar.gz
2. ln -s mysql-standard-5.1.34-linux-i686-glibc23 mysql
 a) установите basedir = на полный путь к вашему новому каталогу mysql
 б) установите datadir = на полный путь к подкаталогу / data в вашем новом каталоге mysql.
3. Настройте базы данных MySQL по умолчанию:
 а) ./scripts/mysql_install_db --defaults-file = mysql.cnf
 б) ./bin/mysqladmin --defaults-file = mysql.cnf -u пароль root "yourpasswordhere"
4.Создать новую базу данных и учетную запись пользователя
 a) Войдите на свой сервер mysql как root: ./bin/mysql --defaults-file = mysql.cnf -u root -p
  

файл mysql.cnf выглядит так:

  [клиент]
сокет = / tmp / mysql_2.sock
порт = 3307
###################################
[mysqld]
#ТРЕБУЕТСЯ!!
# Измените каталог basedir, чтобы он соответствовал вашему домашнему каталогу mysql
basedir = / MySQL
#ТРЕБУЕТСЯ!!
# Измените каталог данных, чтобы он отображал ваш каталог данных mysql
datadir = / MySQL / данные
порт = 3307
сокет = / tmp / mysql_2.носок
key_buffer_size = 64 МБ

# [ОПТИМИЗАЦИЯ]
# Установите это значение на 50% доступной оперативной памяти, если ваша среда позволяет.
myisam_sort_buffer_size = 1,5 ГБ
# [ОПТИМИЗАЦИЯ]
# Это значение должно составлять не менее 50% свободного места на жестком диске. Однако будьте осторожны, устанавливая 100% свободного места. Ваш жесткий диск может заполниться!
myisam_max_sort_file_size = 100 ГБ

# [ОПТИМИЗАЦИЯ]
# Наше значение по умолчанию 2G, вероятно, подходит для этого значения. Измените это значение, только если вы используете машину с небольшими доступными ресурсами.
read_buffer_size = 1.5G
  

команда:

  корень @ ubuntu: / mysql # ./bin/mysqld_safe --defaults- file = mysql.cnf &
  

Ошибка:

  [1] 2386
root @ ubuntu: / mysql # 140415 19:08:12 mysqld_safe Вход в '/mysql/data/ubuntu.err'.
chown: недопустимый пользователь: `mysql '
140415 19:08:12 mysqld_safe Запуск демона mysqld с базами данных из / mysql / data
140415 19:08:12 mysqld_safe mysqld из файла pid /mysql/data/ubuntu.pid завершился

./bin/mysqladmin --defaults-file = mysql.cnf -u
./bin/mysqladmin --defaults-file = mysql.cnf -u пароль root 12345
./bin/mysqladmin: не удалось подключиться к серверу на локальном хосте

ошибка: 'Не удается подключиться к локальному серверу MySQL через сокет' /tmp/mysql_2.sock '(2)'

Убедитесь, что mysqld запущен и сокет: '/tmp/mysql_2.sock' существует!
[1] + Готово ./bin/mysqld_safe --defaults-file = mysql.cnf
  

Я попытался войти по команде:

  ./bin/mysql --defaults-file = mysql.cnf -u root -p
  

Ошибка:

  Введите пароль:

ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/ tmp / mysql_2.носок '(2)
  

Не удается подключиться к локальному серверу MySQL через сокет ‘/tmp/mysql.sock’ (2) (Mysql :: Erro — Базы данных — Форумы SitePoint

MySQL не работает, и я не могу понять почему. Я не являюсь внутренним разработчиком, поэтому не очень разбираюсь в MySQL. В проекте, над которым я работаю, используется Ruby с Rails и база данных MySQL. Я дизайнер и разработчик интерфейса, пытаюсь просматривать файлы локально, используя webrick (локальный сервер rails). Раньше я делал это успешно, но не знаю, почему сейчас это не работает.Это сообщение об ошибке, которое я получаю в терминале, когда пытаюсь запустить «rails server» в каталоге моего проекта:

«Не удается подключиться к локальному серверу MySQL через сокет« /tmp/mysql.sock »(2) (Mysql :: Error)».

Поскольку это новый клон проекта, я выполнил быструю установку пакета, чтобы убедиться, что у меня есть все необходимое. Даже после этого у меня все еще появлялось то же сообщение об ошибке.

Ниже показана сеть, которую я до сих пор соткал, пытаясь разобраться в приведенном выше сообщении об ошибке.

Из системы / usr / local / bin / я набрал:

 
$ sudo ./mysqld_safe &
[1] 6983
$. / mysqladmin -u отключение root
./mysqladmin: не удалось подключиться к серверу на локальном хосте
ошибка: 'Не удается подключиться к локальному серверу MySQL через сокет' /tmp/mysql.sock '(2)'
Убедитесь, что mysqld запущен и сокет: '/tmp/mysql.sock' существует!
$ telnet localhost: 3306
localhost: 3306: nodename или servname предоставлены или неизвестны
$ telnet 127.0.0.1:3306
127.0.0.1:3306: nodename или servname предоставлены или неизвестны
$ telnet
telnet> выйти
  

В основном это был разработчик Rails, пытающийся выяснить, почему это не работает.Надеюсь, вам это пригодится. Он пришел к выводу, что мне нужно создать пароль root mysql, чтобы посмотреть, поможет ли это исправить, потому что я не создавал его при первой установке mysql. Я попробовал это сделать так:

 
$ mysqladmin -u пароль root mypassword
mysqladmin: не удалось подключиться к серверу на локальном хосте
ошибка: 'Не удается подключиться к локальному серверу MySQL через сокет' /tmp/mysql.sock '(2)'
Убедитесь, что mysqld запущен и сокет: '/tmp/mysql.sock' существует!
  

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

 
$ brew удалить mysql
$ brew установить mysql
  

Затем мы попробовали это еще раз, но с той же ошибкой:

 
$ telnet 127.0.0.1:3306
127.0.0.1:3306: nodename или servname предоставлены или неизвестны
  

$ netstat, однако, вернул огромный список вещей.

Мы попытались запустить сервер mysql:

 
$ mysql.запуск сервера
Запуск MySQL
.. ОШИБКА! Сервер завершил работу без обновления файла PID (/usr/local/var/mysql/Nickis-MacBook-Air.local.pid).

  

Итак, мы попытались удалить этот файл:

 
$ rm /usr/local/var/mysql/Nickis-MacBook-Air.local.pid
rm: /usr/local/var/mysql/Nickis-MacBook-Air.local.pid: нет такого файла или каталога
$ sudo rm /usr/local/var/mysql/Nickis-MacBook-Air.local.pid
rm: /usr/local/var/mysql/Nickis-MacBook-Air.local.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *