Моя проблема началась с того, что я больше не могу войти в систему как 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
. Но я заметил, что он не запрашивает пароль. Разве он не должен запрашивать пароль администратора?
Попробуйте выполнить эту команду,
sudo service mysql start
Чтобы найти все файлы сокетов в вашей системе, выполните команду:
sudo find / -type s
В моей серверной системе Mysql сокет открыт по адресу /var/lib/mysql/mysql.sock
.
Когда вы найдете, где открыт сокет, добавьте или отредактируйте строку в файл /etc/my.cnf с указанием пути к файлу сокета:
socket=/var/lib/mysql/mysql.sock
Иногда в сценарии запуска системы, который запустил исполняемый файл командной строки, указывается флаг --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.
Эта ошибка возникает из-за нескольких установок 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;
Ладно просто скопируйте и вставьте эти коды: это должно быть сделано в терминал, внутри сервера, когда ваши базы данных MySQL не правильно установлена, и когда вы получаете эту ошибку: 'могу'т подключиться к локальному серверу MySQL через гнездо ' файл/var/выполнения/которых mysqld/mysqld версии.носок' (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
Есть баг в Ubuntu с MySQL 5.6 и 5.7, где ВАР/работа/тузды/
будет исчезать всякий раз, когда MySQL служба остановлена или перезагружается. Это предотвращает MySQL от работы вообще. Нашел этот способ, что это'т совершенным, но по крайней мере он получает его запуск после остановки/перезагрузки:
mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
Я столкнулся с той же ошибкой и обнаружил, что это связано с обновлением пакетов, поэтому после перезагрузки системы я устранил ошибку.
Я думаю, что ошибка возникла из-за обновления библиотек sql/пакетов, поэтому попробуйте это сделать, если вы делаете некоторые обновления :)
Ответ на шаге нагрузки пользователя работал для меня.
Иногда нужно отредактировать файл в /etc/mysql в/мой.КНФ
добавить строку для клиента
[client]
password = your_mysql_root_password
port = 3306
host = 127.0.0.1
socket = /var/lib/mysql/mysql.sock
С использованием XAMPP на Ubuntu:
Создайте папку с именем тузды внутри /ВАР/бегать каталог. Вы можете сделать это с помощью команды судо команды mkdir /ВАР/работа/тузды
.
Создать символическую ссылку на в MySQL.носка - файл, создаваемый сервером XAMPP был, когда это началось. Вы можете использовать команду судо в каталог /opt/lampp/VAR в/из mysql/mysql для.носок /ВАР/работа/тузды/тузды.носок
.
Примечание: для MySQL.носка файл создается, когда сервер запущен и удален, когда сервер остановлен, так иногда, по ссылке вы создали может оказаться сломан, но он должен работать так долго, как вы запустили сервер, используя либо
судо каталог /opt/lampp/lampp Start
или любым другим способом.
Удачи! Я надеюсь, что вы'будете уйти с ним на этот раз.
решения
наконец, удалить и переустановить программы. **
затем установить снова
После этой операции, 164 МБ дополнительного дискового пространства будет использовано.
...... .......
Настройка libhtml-шаблонов на Perl (2.95-1) ...
Настройка СУБД MySQL-общие-5.6 (5.6.16-1~выр1) ... Обработка триггеров для библиотеки libc-bin (на 2.19-0ubuntu6) Обработка триггеры для ureadahead (0.100.0-16) ...
корень@ubuntu1404:~# для mysql -u в корень -П (для каждого пароля из первых у следует использовать )
Введите пароль:
Примечание :пароль должен быть таким же, как время установки пароль для MySQL(как .корневая,система,администратор,Рахул и т. д...)
Затем введите
Спасибо.**
Может, кто-то сталкивается с этой проблемой. Я использую верстак с MySQL ПО в Ubuntu 14 и получил эту ошибку.
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect
Найти ваш файл сокета, выполнив команду sudo найти / -тип s, в моем случае это было/выполнения/которых mysqld/mysqld в.носок`
Поэтому я просто создал ссылку на этот файл в каталоге tmp`.
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
Ошибка 2002 (HY000): может'т подключиться к локальному серверу MySQL через гнездо ' файл/var/библиотека/MySQL в/в MySQL.носок' (2)
в /etc/мой.КНФ
добавить эти строки:
[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]
И перезапустить службу с:
сервис MySQL перезагрузка
этот работал для меня
Я думаю, что сервер MySQL не запущен. Чтобы запустить сервер, используя одну из следующих команд.
#services mysql start
или
#/etc/init.d/mysql start
Это было сказано пару раз уже, но этот работал сразу на меня:
сервис MySQL перезагрузка
Убедитесь, что ваш недоступный гнездо путь к файлу такой же, как ' файл/var/выполнения/которых mysqld/mysqld версии.носок', в противном случае измените путь твой. Остановить тузды
$ sudo /etc/init.d/mysqld stop
Если процесс еще подножка;
$ sudo pkill -9 mysqld
Удалить папку MySQL, где гнездо собирается создать. Для меня это не позволяли снять, так что мне пришлось принудительно удалить.
$ sudo mkdir -p /var/run/mysqld
Установить право собственности на dirctory
$ sudo chown mysql:mysql /var/run/mysqld
Запустите MySQL
$ sudo /etc/init.d/mysql start
Пытаюсь подключиться к MySQL
$ sudo mysql -u dbuser -p
Если у вас много баз и таблиц в системе, и если у вас есть innodb_file_per_table в моей.КНФ, то ваш сервер MySQL может работать из открытых объектов / файлов (или, скорее, дескрипторы для этих объектов) Установить новую максимальное количество с
open-files-limit = 2048
и перезапустите MySQL. Такой подход может помочь, когда сокет создается не на всех, но на самом деле это не может быть реальная проблема, есть основная проблема.