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 [(нет)]>
Примечания:
Я не совсем уверен насчет групп, в которые нужно добавить сокет, сначала у меня был [клиент-сервер], но потом я решил, что [client] должно быть достаточно.Я изменил его, и он все еще работает.
При работе
mariadb_config | grep socket
я получаю:
- сокет [/tmp/mysql.sock]
что немного сбивает с толку, поскольку кажется, что/usr/local/mariadb/data/mariadb.sock
— это фактическое место (по крайней мере, на моей машине)Интересно, где я могу настроить
/usr/local/mariadb/data/mariadb.sock
как/tmp/mysql.sock
, чтобы я мог использовать настройки по умолчанию вместо того, чтобы редактировать свой.my.cnf
(но я слишком устал, чтобы понять это …)В какой-то момент я также делал вещи, упомянутые в других ответах, прежде чем придумать это.
Не удается подключиться к локальному серверу 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
0
+0
- Авторизоваться
Подписаться
Database Administrators Stack Exchange — это сайт вопросов и ответов для специалистов по базам данных, которые хотят улучшить свои навыки работы с базами данных и учиться у других в сообществе.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществу
Кто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено
318к раз
На этот вопрос уже есть ответы :
Закрыт 2 года назад.
Я продолжал получать эту следующую ошибку каждый раз, когда пытался перезапустить MySql. Он работал нормально до того, как я изменил каталог данных по умолчанию.
ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет ‘/ var / lib /mysql/mysql.sock’ (111)
Я знаю, что есть другие решения, опубликованные другими, но ни одно из них не помогло мне.
Создан 21 апр.
MahuLovzYouMahuLovzYou
12111 золотой знак11 серебряных знаков33 бронзовых знака
2
Проверьте следующее
Сначала проверьте, запущен ли другой экземпляр на том же компьютере
пс топор | grep mysql
Затем проверьте, есть ли у вашего файла my.cnf (вероятно, в папке / etc / mysql /) правильно настроен с
[mysqld]
datadir = / вар / библиотека / mysql /
сокет = /var/lib/mysql/mysql.sock
- Затем вы изменили каталог данных по умолчанию, дали ли вы правильные разрешения для нового каталога сейчас
chown mysql: mysql -R / var / lib / mysql / *. chmod 755 -R / var / lib / mysql / *
После изменения разрешения перезапустите службу и проверьте
перезапуск службы 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.