Моя проблема началась с того, что я больше не мог войти в систему как пользователь root при установке MySQL. Я пытался запустить mysql без включенных паролей ... но всякий раз, когда я запускал команду
# mysqld_safe --skip-grant-tables &
Я никогда не получу подсказку обратно. Я пытался следовать этим инструкциям, чтобы восстановить пароль .
Экран просто выглядит так:
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 для сброса пароля.
Когда я убиваю его нажатием CTRL+ C, я получаю следующее сообщение:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Если я повторю команду и оставлю ее достаточно долго, я получу следующую серию сообщений:
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
снова. Но я заметил, что это не запрашивает у меня пароль. Разве это не должно спрашивать пароль администратора?
/var/run/mysqld/mysqld.sock
пропал. Проблема, на которую вы ссылались, содержит этот файл.Ответы:
Чтобы найти все файлы сокетов в вашей системе, выполните:
В моей системе Mysql server был открыт сокет по адресу
/var/lib/mysql/mysql.sock
Как только вы найдете место открытия сокета, добавьте или отредактируйте строку в файле /etc/my.cnf с указанием пути к файлу сокета:
Иногда сценарий запуска системы, запускающий исполняемый файл командной строки, указывает флаг
--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 работает так, как он может читать / писать в него. Простой тест - открыть его до полного чтения / записи и посмотреть, работает ли он по-прежнему:
Если это решит проблему, вы можете настроить разрешения и владельца сокета в соответствии с вашими настройками безопасности.
Кроме того, каталог, в котором находится сокет, должен быть доступен пользователю, выполняющему процесс mysqld.
источник
kill -9
; Есть несколько способов, которые следует попробовать, прежде чем он достигнет этого.ps -aux | grep mysqld
и посмотрите, работают ли какие-либо другие процессы mysqlПопробуйте эту команду,
источник
sudo service mysqld start
sudo apt-get install mysql-server
если он еще не установлен :)Эта ошибка возникает из-за множественных установок mysql. Запустите команду:
Убейте процесс, используя:
и затем выполните команду:
Также убейте этот процесс, запустив:
Теперь вы полностью настроены, просто запустите следующие команды:
Иметь очень хорошо работающий 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
:)источник
sudo find / -type s
не содержат ничегоmysql.sock
?Просто нужно запустить MySQL Service после установки:
Для Ubuntu:
Для CentOS или RHEL:
источник
sudo systemctl status mysql.service
иsudo systemctl start mysql.service
. Это работает для меняВ Ubuntu с MySQL 5.6 и 5.7 существует ошибка,
var/run/mysqld/
которая исчезает, когда служба MySQL останавливается или перезагружается. Это предотвращает запуск MySQL вообще. Нашел этот обходной путь, который не идеален, но, по крайней мере, он запускается после остановки / перезагрузки:источник
# 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/tmpfiles.d/mysql.conf
в комментарий к motorbaby устранило эту проблему для меня. На ОС Centos 7 и используюmysql Ver 15.1 Distrib 10.3.11-MariaDB,
.Хорошо, просто скопируйте и вставьте эти коды: это должно быть сделано в терминале, на сервере, когда ваша база данных mysql не установлена должным образом, и когда вы получаете эту ошибку: «Не удается подключиться к локальному серверу MySQL через сокет» / var / run / mysqld / mysqld.sock '(2)'.
Стоп MySql
Перезапустите или запустите
Сделайте такую ссылку и дайте ее системе
Запустите безопасную установку, которая управляет всем процессом, необходимым для настройки mysql.
источник
Can't connect
ошибку, когда я пытаюсь запустить выше команды.Я столкнулся с той же ошибкой и обнаружил, что это произошло из-за обновления пакетов, поэтому после перезапуска системы я устранил ошибку.
Я думаю, что из-за обновления библиотек / пакетов sql произошла эта ошибка, поэтому попробуйте это, если вы делаете обновление :)
источник
Есть много причин для этой проблемы, но иногда просто перезапустите сервер MySQL, это решит проблему.
источник
Использование XAMPP в Ubuntu:
Создайте папку с именем туздЫ внутри / вар / запустить каталог. Вы можете сделать это с помощью команды
sudo mkdir /var/run/mysqld
.Создайте символическую ссылку на файл mysql.sock, который создается сервером XAMPP при его запуске. Вы можете использовать команду
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.Удачи! Надеюсь, на этот раз тебе это сойдет с рук.
источник
Ответ шага загрузки пользователя работал для меня. Иногда необходимо отредактировать файл в
/etc/mysql/my.cnf
строке добавления к клиентуисточник
mysql: unknown variable 'Host=127.0.0.1'
Host
должны быть в нижнем регистре,host
и это будет работать. Также это решение сработало для меня.* Ошибка: «Не удается подключиться к локальному серверу MySQL через сокет« /var/run/mysqld/mysqld.sock '(2)'
решения
наконец, удалите и переустановите 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 (для каждого первого пароля, который вы должны использовать)
Введите пароль:
Примечание: введенный пароль должен совпадать с паролем времени установки mysql (например, .root, system, admin, rahul и т. Д.)
Затем введите
USE rahul_db (имя базы данных);
Спасибо.**
источник
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Спасибо!E: Package 'mysql-server-5.6' has no installation candidate
, его нет в Ubuntu 18.04Убедитесь, что путь к файлу недоступного сокета совпадает с «/var/run/mysqld/mysqld.sock», в противном случае измените путь на свой. Останови mysqld
Если процесс все еще запущен;
Удалите каталог mysql, где собирается создать сокет. Для меня это не позволило удалить, поэтому мне пришлось принудительно удалить.
Установите право собственности на каталог
Запустите MySQL
Пытаюсь подключить mysql
источник
Я думаю, что ваш сервер MySQL еще не запущен. Запустите сервер, используя одну из следующих команд.
или
источник
Временное решение
Может быть, кто-то сталкивается с этой проблемой. Я использую Mysql Workbench на Ubuntu 14 и получил эту ошибку.
Найти файл сокета, запустив
sudo find / -type s
, в моем случае это было/run/mysqld/mysqld.sock
Итак, я только что создал ссылку на этот файл в
tmp
каталоге.источник
/tmp
папке, поэтому он будет точно удален. Вы можете изменить.sock
местоположение файла. Смотрите @ user3002884 ответ.вы можете найти
mysqld.sock
в ,/var/run/mysqld
если вы уже установилиmysql-server
наsudo apt-get install mysql-server
источник
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
в
/etc/my.cnf
добавьте эти строки:И перезапустите сервис с помощью:
service mysql restart
это сработало для меня
источник
Это уже упоминалось пару раз, но это сразу сработало для меня:
перезапуск службы mysql
источник
В моем случае два процесса mysqld были запущены .. убил необязательные процессы с помощью pkill -9 mysqld
источник
Если в вашей системе много баз данных и таблиц, и если вы
innodb_file_per_table
установили в my.cnf, то на вашем сервере mysql, возможно, закончились открытые объекты / файлы (или, скорее, дескрипторы для этих объектов). Установите новое максимальное число. с участиеми перезапустите MySQL. Этот подход может помочь, когда сокет вообще не создается, но на самом деле это не может быть реальной проблемой, есть основная проблема.
источник
У меня просто была эта проблема на Ubuntu 14.10
Повороты, которые
mysql-server
больше не были установлены (каким-то образом они были удалены), но я не мог просто установить его, потому что были некоторые сломанные пакеты и проблемы / конфликты зависимостей.В конце концов мне пришлось переустановить MySQL
источник
Я удалил mysql в Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql
Я переустановил mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
Казалось, это работает.
источник
Мое решение;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
Я изменил порт. Это сработало для меня. Вы можете написать другой порт. Пример 3355
источник
Зачем получать эту ошибку
Я получил новые обновления библиотек mysql, поэтому я обновил свою ОС Kubuntu после этого, получив эти ошибки.
Команды, которые я пробовал и как я это исправил.
MySql-сервер работает правильно, но когда я пытался подключить его, давая
Я проверил
/var/run/mysqld/mysqld.sock'.
этот каталог. Мои файлы не существовали.Я также попробовал эти команды для подключения, но у меня не получилось.
Потратив около 2 часов, я нашел решение
После этого все исправлено для меня.
источник
Изменение
host
в127.0.0.1
работал для меня.Отредактируйте файл
/etc/mysql/my.cnf
и добавьте указанную ниже строку в раздел:client
После того, как вы сделали с этим. Выполните следующую команду.
источник
Я также проверил бы конфигурацию mysql. Я столкнулся с этой проблемой на своем собственном сервере, но я был слишком поспешен и неправильно настроил innodb_buffer_pool_size для своей машины.
innodb_buffer_pool_size = 4096M
Обычно он работает нормально до 2048 года, но, думаю, у меня нет памяти, необходимой для поддержки 4 концертов.
Я полагаю, что это также может произойти с другими настройками конфигурации MySQL.
источник
У меня была похожая проблема на 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) Восстановить все бд в 3).
Удачи!
источник
Попробуйте следующее в терминале:
Как только это позволит вам, вы можете создать нового пользователя и предоставить привилегии, которые вы хотите для конкретной базы данных, к которой им нужен доступ.
Mysql 5.7 изменил некоторые вещи и по умолчанию использует плагин auth_socket (в отличие от mysql_native_password) для root, чтобы защитить аккаунт от взлома. Вы можете переопределить это, установив поле плагина для root, но если у вас нет веских причин, вам, вероятно, не стоит обойти защиту. Особенно, когда
sudo mysql
это проще, чем вmysql -u root -p
любом случае.Я узнал эту информацию - из всех мест - с сайта помощи Raspberry Pi . Сработал как шарм после того, как Lubuntu 18.04 выбил меня из колеи на пару часов.
источник
Сначала создайте dir / var / run / mysqld
с командой:
затем добавить правки в каталог
после этой попытки
источник
У меня была точно такая же проблема. Поработав в течение часа, я нашел способ исправить это без переустановки mysql-common, mysql-client, mysql-server.
Прежде всего, перейдите в "/ var / run / mysqld". Вы обнаружите, что mysql.sock не существует. Просто удалите весь каталог mysqld, создайте его заново и предоставьте ему необходимые привилегии.
Теперь убейте процесс mysql целиком. Вполне возможно, что он покажет вам, «ожидая очистки страницы» при запуске команды «/etc/init.d/mysql status», даже после закрытия службы.
Чтобы полностью закрыть сервис, используйте
После завершения процесса попробуйте запустить его снова, используя
И вы увидите, что это работает хорошо! И также не будет никакой проблемы в том, чтобы остановить это также.
источник