Моя проблема началась с того, что я не смог войти в систему как root в мою установку mysql. Я пытался запустить mysql без включения паролей... но всякий раз, когда я запускал команду:
# mysqld_safe --skip-grant-tables &
Я бы никогда не получил подсказку назад... (я пытался следовать инструкциям здесь: http://www.cyberciti.biz/tips/recover-mysql-root-password.html) Экран выглядит примерно так:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
и я не получаю приглашение на ввод команд sql на reset пароль.
Когда я убиваю его, выполняя CTRL + C, я получаю следующее сообщение:
Ошибка: "Не удается подключиться к локальному серверу MySQL через сокет" /var/run/mysqld/mysqld.sock '(2)'
Убедитесь, что mysqld запущен и что сокет: '/var/run/mysqld/mysqld.sock' существует!
Если я повторю команду и оставлю ее достаточно долго, я получаю следующую серию сообщений:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Но тогда, если я попытаюсь войти в систему как root, сделав:
# mysql -u root
Появляется следующее сообщение об ошибке:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Я проверил и /var/run/mysqld/mysqld.sock
файл не существует. Папка делает, но не файл.
Кроме того, я не знаю, помогает ли это, или нет, но я нашел find / -name mysqld
, и он придумал:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Я просто знаком с linux и mysql, поэтому я не знаю, нормально это или нет. Но я включаю эту информацию на случай, если это поможет...
** Наконец-то я решил удалить и переустановить mysql. **
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
После повторной установки всех пакетов в том же порядке, что и выше, во время установки phpmyadmin он дал мне ту же ошибку -
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Поэтому я снова попытался удалить/переустановить. На этот раз после того, как я удалил пакеты, я также вручную переименовал все файлы и каталоги mysql в mysql.bad
в соответствующих местах.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Затем я попытался снова установить mysql-server
, mysql-client
. Но я заметил, что это не подсказывает мне пароль. Разве он не должен запрашивать пароль администратора?
Чтобы найти все файлы сокетов в вашей системе:
sudo find / -type s
Моя серверная система Mysql открывала сокет в /var/lib/mysql/mysql.sock
Как только вы обнаружите, где сокет открывается, добавьте или отредактируйте строку в файле /etc/my.cnf с помощью пути к файлу сокета:
socket=/var/lib/mysql/mysql.sock
Иногда запуск системы script, запускающий исполняемый файл командной строки, указывает флаг --socket=path
. Этот флаг может переопределить местоположение my.cnf, и это приведет к тому, что сокет не будет найден, где файл my.cnf указывает, что он должен быть. Затем, когда вы пытаетесь запустить клиент командной строки mysql, он будет читать my.cnf, чтобы найти сокет, но он не найдет его, поскольку он отклоняется от того, где его создал сервер. Итак, если вы не заботитесь о том, где находится сокет, нужно просто изменить my.cnf для соответствия.
Затем остановите процесс mysqld. Как вы это сделаете, зависит от системы.
Если вы являетесь суперпользователем в системе Linux, попробуйте выполнить одно из следующих действий, если вы не знаете конкретного метода, который использует ваша установка Mysql:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
или ps aux | grep mysql | grep -v grep
4969
завершен с помощью kill -9 4969
После этого вы можете искать pid файл в /var/run/mysqld/
и удалять его
Убедитесь, что разрешения на ваш сокет таковы, что любой пользовательский mysqld работает, как может читать/писать на него. Легкий тест заключается в том, чтобы открыть его до полного чтения/записи и посмотреть, все ли работает:
chmod 777 /var/run/mysqld/mysqld.sock
Если это устраняет проблему, вы можете настроить разрешения и права собственности на сокет по мере необходимости на основе ваших настроек безопасности.
Кроме того, каталог, в котором находится сокет, должен быть доступен пользователю, выполняющему процесс mysqld.
kill -9
; Есть несколько способов, которые следует попробовать, прежде чем он достигнет этого.
Попробуйте эту команду,
sudo service mysql start
Эта ошибка возникает из-за множества установок mysql. Выполните команду:
ps -A|grep mysql
Убейте процесс, используя:
sudo pkill mysql
а затем выполните команду:
ps -A|grep mysqld
Также убейте этот процесс, выполнив:
sudo pkill mysqld
Теперь вы полностью настроены, просто запустите следующие команды:
service mysql restart
mysql -u root -p
У вас очень хорошо работает mysql снова
Решение проще.
mysql.sock
. В моем случае это было в /opt/lampp/var/mysql/mysql.sock
sudo Nautilus
mysql.sock
файлmysqld.sock
, затем щелкните правой кнопкой мыши на файле и вырежьте его/var/run
и создайте папку с именем mysqld
и введитеmysqld.sock
файл /var/run/mysqld/mysqld.sock
:)Просто нужно запустить MySQL-сервис после установки:
Для Ubuntu:
sudo service mysql start;
Для CentOS или RHEL:
sudo service mysqld start;
sudo systemctl status mysql.service
и sudo systemctl start mysql.service
. Это работает для меня
Хорошо скопируйте и вставьте эти коды: это должно быть сделано в терминале, внутри сервера, когда ваша база данных mysql установлена неправильно, и когда вы получаете эту ошибку: "Не удается подключиться к локальному серверу MySQL через socket '/var/run/mysqld/mysqld.sock' (2) '.
Остановить MySql
sudo /etc/init.d/mysqld stop
Перезапустить или запустить его
sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start
Сделайте ссылку, подобную этой, и отдайте ее системе
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
Запустите безопасную установку, которая поможет вам выполнить весь процесс, необходимый для настройки mysql
/usr/bin/mysql_secure_installation
Can't connect
ошибкой при попытке запустить вышеуказанную команду
Я столкнулся с такой же ошибкой и обнаружил, что это связано с обновлением пакетов, поэтому после перезагрузки моей системы я разрешил ошибку.
Я думаю, из-за того, что библиотеки sql-библиотек/пакетов обновляют эту ошибку, поэтому попробуйте это, если вы выполняете некоторую модернизацию:)
Существует много причин для этой проблемы, но иногда просто перезагружается сервер mysql, он исправляет проблему.
sudo service mysql restart
В Ubuntu есть ошибка с MySQL 5.6 и 5.7, где var/run/mysqld/
исчезает всякий раз, когда служба MySQL останавливается или перезагружается. Это предотвращает запуск MySQL. Обнаружено это обходное решение, которое не является совершенным, но, по крайней мере, оно запускается после остановки/перезагрузки:
mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
а затем, d /var/run/mysqld 0755 mysql mysql -
После перезагрузки mysql должен запускаться нормально. Это из bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , комментарий 3. Если у вас возникла эта проблема с MySQL 5.7, прокомментируйте Launchpad. Чем больше пользователей решат проблему, тем больше внимания она получит.
Ответ на шаг загрузки пользователя сработал у меня.
Иногда нужно отредактировать файл в /etc/mysql/my.cnf
добавить строку клиенту
[client]
password = your_mysql_root_password
port = 3306
host = 127.0.0.1
socket = /var/lib/mysql/mysql.sock
mysql: unknown variable 'Host=127.0.0.1'
Host
должен быть в нижнем регистре host
, и он будет работать. Также это решение сработало для меня.
<сильные > решения
наконец, удалите и переустановите mysql. **
затем снова установите
После этой операции будет использовано 164 МБ дополнительного дискового пространства.
...... .......
Наконец, вы получите эти строки....
Настройка libhtml-template-perl (2.95-1)...
Настройка mysql-common-5.6 (5.6.16-1 ~ exp1)... Обработка триггеров для libc-bin (2.19-0ubuntu6) Триггеры обработки для ureadahead (0.100.0-16)...
И затем
root @ubuntu1404: ~ # mysql -u root -p (для каждого пароля сначала u следует использовать)
Введите пароль:
Примечание. Введенный пароль должен быть таким же, как время установки пароль mysql (например,.root, system, admin, rahul и т.д.)
Затем введите
ИСПОЛЬЗОВАТЬ rahul_db (имя базы данных);
Спасибо. **
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Спасибо!
Может быть, кто-то столкнулся с этой проблемой. Я использую Mysql Workbench на Ubuntu 14 и получил эту ошибку.
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect
Найдите файл сокета, запустив sudo find / -type s
, в моем случае это было /run/mysqld/mysqld.sock
Итак, я только что создал ссылку на этот файл в каталоге tmp
.
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
/tmp
поэтому он будет точно удален. Вы можете изменить .sock
файла .sock
. Смотрите @ user3002884 ответ.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
в /etc/my.cnf
добавьте следующие строки:
[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]
И перезапустите службу с помощью:
service mysql restart
это сработало для меня
У меня была эта проблема только на Ubuntu 14.10
Поверяет, что mysql-server
больше не установлен (каким-то образом он был удален), но я не мог просто установить его, потому что были некоторые сломанные пакеты и проблемы/конфликты.
В конце концов мне пришлось переустановить mysql
sudo apt-get remove mysql-client
sudo apt-get install mysql-server
вы можете найти mysqld.sock
в /var/run/mysqld
, если вы уже установили mysql-server
sudo apt-get install mysql-server
Это уже упоминалось пару раз, но это сразу же помогло мне:
служба mysql restart
Я бы также проверить конфигурацию mysql. Я столкнулся с этой проблемой с моим собственным сервером, но я был слишком поспешным и неправильно сконфигурировал innodb_buffer_pool_size для моей машины.
innodb_buffer_pool_size = 4096M
Обычно он работает нормально до 2048, но, я думаю, у меня нет памяти, необходимой для поддержки 4 концертов.
Я предполагаю, что это также может произойти с другими настройками конфигурации mysql.
Для меня работала host
до 127.0.0.1
.
Отредактируйте файл в /etc/mysql/my.cnf
и добавьте указанную ниже строку в раздел: client
[client]
port = 3306
host = 127.0.0.1
socket = /var/lib/mysql/mysql.sock
После этого вы закончите. Выполните следующую команду.
sudo service mysql start
Если в вашей системе имеется множество баз данных и таблиц, и если у вас есть innodb_file_per_table
, установленный в my.cnf, то на вашем сервере mysql могут быть запущены открытые объекты/файлы (или, скорее, дескрипторы для этих объектов )
Задайте новое максимальное число с помощью
open-files-limit = 2048
и перезапустите mysql. Этот подход может помочь, когда сокет не создается вообще, но на самом деле это может быть не проблема, существует основная проблема.
В моем случае выполнялись два процесса mysqld. убил необязательные процессы, используя pkill -9 mysqld
Я удалил mysql в Ubuntu 16.04 https://askubuntu.com/questions/172514/how-do-i-uninstall-mysql
Я переустановил mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
Казалось, это сработало.
Файл mysql.sock создается, когда MariaDB запускается и удаляется при завершении работы MariaDB. Он не будет существовать, если MariaDB не работает. возможно, вы не установили MariaDB. ВЫ МОЖЕТЕ ПОЛУЧИТЬ ИНСТРУКЦИЮ НИЖЕ: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 ЛУЧШИЙ
У меня была аналогичная проблема на CentOS VPS. Если MySQL не запускается или продолжает сбой сразу после его запуска, выполните следующие действия:
1) Найдите файл my.cnf(мой был расположен в /etc/my.cnf) и добавьте строку:
innodb_force_recovery = X
заменив X числом от 1 до 6, начиная с 1, а затем увеличивая, если MySQL не запустится. Установка на 4, 5 или 6 может удалить ваши данные, поэтому будьте внимательны и прочитайте http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html раньше.
2) Перезапустите службу MySQL. Выполняется только SELECT, и это нормально в данный момент.
3) Дамп всех ваших баз данных/схем с помощью mysqldump один за другим, не сжимайте дампы, потому что в любом случае вам придется распаковать их позже.
4) Переместите (или удалите!) только каталоги bd внутри /var/lib/mysql, сохранив отдельные файлы в корне.
5) Остановите MySQL, а затем раскомментируйте строку, добавленную в 1). Запустите MySQL.
6) Восстановите все bd, сброшенные в 3).
Удачи!
В моем случае проблема заключалась в адресах привязки в /etc/mysql/my.cnf, а затем:
nano/etc/mysql/my.cnf
найдите адреса привязки и удалите их с помощью хоста ip (а не 127.0.0.1)
Я попробовал почти все перечисленные решения, никто не работал у меня, пока я не перезапустил машину, а затем перезапустил сервер mysql, когда я выпустил команду "service mysql restart".
У меня была такая проблема, когда я изменял размер капли на digitalocean. Я обновил версию mysql и работал у меня. Вот учебник, который я применил - https://serverpilot.io/community/articles/how-to-upgrade-mysql-5.5-to-5.6-on-ubuntu-14.04.html
на archlinux Я столкнулся с этой ошибкой, и проблема заключалась в том, что служба mysqld
не выполнялась.
Однако я не смог включить mysql-сервис с systemctl start mysqld
, как указано в документации Archlinux. Я думаю, что ошибка была что-то вроде
mysqld.service не найден
Сначала мне нужно было перезапустить систему.
Затем я снова ввел команду (и ввел systemctl enable mysqld
), и теперь mysql
смог найти созданный mysql.sock
.
Я запускаю свой MySQL на виртуальной машине в Ubuntu. Так что случилось, когда я перезапустил мой хост и VM, IP изменился. Я настроил mysql для запуска на IP 192.168.0.5 и теперь из-за динамического распределения IP, мой новый IP был 192.168.0.8
Если у вас есть такая же проблема, просто проверьте свой ip с помощью команды ifconfig
.
Проверьте привязку MySQL с помощью команды cat /etc/mysql/my.cnf | grep bind-address
Если оба IP являются одинаковыми, переустановите сервер mysql
Если нет, то измените свой IP-адрес на /etc/network/interfaces
с помощью nano, vi, vim или чего-либо из ваших предпочтений.
Я предпочитаю sudo nano /etc/network/interfaces
и введите следующие
auto eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
Сохраните файл интерфейсов, перезагрузите интерфейс sudo ifdown eth0
&& & sudo ifup eth0
замените "eth0" на сетевой интерфейс
Перезагрузите MySQL sudo service mysql stop
, а затем sudo service mysql start
Если у вас есть такая же проблема, как у меня, вам хорошо идти!
В лампочке, как я узнаю, он не идентифицирует команды mysql. попробуйте
sudo /opt/lampp/bin/mysql
он откроет терминал mysql, где вы сможете общаться с базами данных.
Это решение может помочь другим, иногда исправление очень просто.
В вашей рабочей среде перезапустите сервер mysql и apache
sudo service mysql restart
sudo apache services restart
Это обычная проблема при установке плагина или выполнении любых команд базы данных.
Ошибка: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Иногда это происходит из-за того, что сервер mysql опускается, на реальном сервере, я думаю, вам нужно перезапустить сервер, а также в localhost вам нужно перезапустить сервер mysql.
найти файл my.cnf с помощью mysql config my был в /etc/mysql/my.cnf(измените место, где он говорит сокет соответственно)
port = 3306
socket = /tmp/mysql.sock
Вот записи для некоторых конкретных программ Следующие значения предполагают, что у вас есть как минимум 32M ram
Это было официально известно как [safe_mysqld]. Обе версии в настоящее время разобраны.
[mysqld_safe]
socket = /tmp/mysql.sock
nice = 0