Я установил LAMP на Ubuntu 12.04 LTS (Precise Pangolin), а затем установил пароль root на phpMyAdmin . Я забыл пароль, и теперь я не могу войти. Когда я пытаюсь изменить пароль через терминал, я получаю:
ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
Как я могу это исправить? Я не могу открыть LAMP, удалить его или переустановить.
mysql
phpmyadmin
lamp
forgot-password
mysql-error-2002
Sushmit Sarmah
источник
источник
Ответы:
У меня когда-то была эта проблема, и я решил ее путем установки
mysql-server
, поэтому убедитесь, что вы установилиmysql-server
, а не тоmysql-client
или что-то еще.Эта ошибка означает, что файл
/var/run/mysqld/mysqld.sock
не существует, если вы не установилиmysql-server
, то файл не будет существовать. Так что в этом случае установите его сНо если
mysql-server
он уже установлен и работает, вам необходимо проверить файлы конфигурации.Конфигурационные файлы:
В
/etc/my.cnf
конфигурации файла сокета может быть,/tmp/mysql.sock
и в/etc/mysql/my.cnf
конфигурации файла сокета может быть/var/run/mysqld/mysqld.sock
. Итак, удалите или переименуйте/etc/mysql/my.cnf
, позвольте MySQL использовать/etc/my.cnf
, тогда проблема может быть решена.источник
sudo apt-get install mysql-server
установить MySQL на UbuntuПопробуй это:
Также (чтобы увидеть, работает ли он):
Вероятно, это просто неправильная конфигурация
my.cnf
файла/etc/somewhere
(в зависимости от дистрибутива Linux ).источник
/etc/my.cnf
и прокомментировать#bind-address = 127.0.0.1
Ссылка 1 Ссылка 2 . Тогда я мог бы подключиться. После этого я понял, что теперь получаю эту ошибку 2002 года, которая привела меня к этому ответу, и теперь он снова работает. Конечно, я согласен с вами, получив объяснение, почему просто печататьmysql
без-h
ошибок выдает ошибку.mysql -h localhost
не работает. Обязательно используйтеmysql -h 127.0.0.1
как указано в ответе.Я вижу все эти ответы, но ни один из них не предлагает возможность сбросить пароль и не принял ответ . На самом деле вопрос в том, что он забыл свой пароль, поэтому ему нужно сбросить настройки, а не посмотреть, запущен он или нет (установлен или нет), как подразумевает большинство этих ответов.
Сбросить пароль
Выполните следующие действия (может быть полезно, если вы действительно забыли свой пароль и можете попробовать его в любое время, даже если в данный момент вы не находитесь в ситуации):
Стоп
mysql
Или для других версий дистрибутива:
Запустите MySQL в безопасном режиме
Войдите в MySQL, используя root
Выберите базу данных MySQL для использования
Сбросить пароль
Сбросить привилегии
Перезагрузите сервер
Остановите и запустите сервер снова
Ubuntu и Debian:
На CentOS, Fedora и RHEL:
Войти с новым паролем
Введите новый пароль и наслаждайтесь вашим сервером снова, как будто ничего не случилось
Это было взято из Сброс пароля root MySQL .
источник
repair table user use_frm
помог мне решить эту проблему. - stackoverflow.com/questions/4297592/…update user set authentication_string=password('mynewpassword') where user='root';
Я попробовал следующие шаги:
super user
или использоватьsudo
/etc/mysql/my.cnf
с помощью Geditbind-address
и измените его значение на IP-адрес хост-компьютера сервера базы данных. Для меня это былоlocalhost
или127.0.0.1
sudo service mysql start
И это сработало для меня.
источник
Я исправил эту проблему, выполнив следующую команду:
И если вы используете Mac и используете brew для установки mysql, просто используйте:
источник
У меня была аналогичная проблема. mysql не запускается:
Если я отключил apparmor:
проблема ушла. Проблема заключалась в том, что mysqld пытался получить доступ к /run/mysqld/mysqld.sock, но профиль apparmor давал разрешение только на /var/run/mysqld/mysqld.sock (/ var / run является символической ссылкой на / run, так что на самом деле это то же). Не уверен, почему mysqld не использует путь var, поскольку это то, что установлено во всех файлах конфигурации, но вы можете решить эту проблему, добавив следующее в /etc/apparmor.d/usr.sbin.mysqld
источник
В моем случае диск был переполнен и mysqld больше не запускался.
Попробуйте перезапустить службу MySQL.
или
Если он не распознает
stop
команду, то это определенно место на диске. Вы должны выделить некоторое место в разделеmysql
или увеличить размер диска.Проверьте место на диске с помощью
источник
Я решил это, убив
mysql
процесс:И затем я снова запустил сервер с:
Но
start
работает также:Затем я вошел как
admin
, и я сделал.источник
Каким-то образом процесс сервера MySQL не создал сокет, или клиент ищет сокет в неправильном месте.
Моим первым предложением было бы проверить, работает ли сервер MySQL. Второе предложение может быть, сервер MySQL работает на другом хосте? Если так, добавьте
-h <hostname>
флаг к своему клиенту MySQL в терминале.Если MySQL действительно работает и работает локально, проверьте ваш
my.cnf
файл. Там должна быть строка, какПосмотрите, соответствует ли это местоположению сокета, которое вы упомянули в своем посте.
Из опыта я бы сказал, что наиболее вероятным сценарием является то, что ваш сервер MySQL либо вообще не работает, либо не работает на том же хосте, на котором вы запускаете клиент MySQL из терминала.
источник
Я только что столкнулся с той же проблемой после перезапуска своего производственного сервера. Я использую Debian 8.1 (Jessie) на капле DigitalOcean.
Вот что я сделал, чтобы решить мою проблему:
Проверьте, существует ли файл
/var/run/mysqld/mysqld.sock
. Если этого не произойдет, создайте его вручную, введяtouch /var/run/mysqld/mysqld.sock
(что я и должен был сделать).Таким образом, процесс MySQL может использовать этот файл. Сменить владельца указанного файла, введя
chown mysql /var/run/mysqld/mysqld.sock
.Как только «2» было сделано, перезапустите службу MySQL, введя
service mysql restart
или/etc/init.d/mysql restart
.После выполнения вышеуказанных шагов моя проблема была решена. Я редко сталкиваюсь с этой проблемой, и, возможно, есть лучший способ, поэтому обязательно предоставьте конструктивную обратную связь, если это будет необходимо :).
источник
Ваш MySQL-сервер может не работать. Убедитесь, что он работает, введя
mysql.server start
в терминал.источник
Проверьте
"bind-adress"
параметр в my.cnf.Еще попробуйте с командой:
-h для хоста
127.0.0.1
, то есть localhost-P (обратите внимание -P в верхнем регистре) для порта
3306
, то есть порт по умолчанию для MySQLисточник
Вот что сработало для меня:
Это создает ссылку.
источник
Если вы используете Amazon EC2 , и у вас возникла эта проблема в экземпляре, то вам нужно только сделать:
В Amazon EC2 не установлен сервер (установлен только клиент), поэтому в этом случае вам необходимо установить его на свой экземпляр, а затем попытаться
чтобы проверить, сработало ли это.
источник
Я думаю всякий раз, когда вы получаете ошибку
Сначала я рекомендую проверить, работает ли ваш
mysql
демон ... В большинстве случаев он не работает по умолчанию. Вы можете проверить это/etc/init.d/mysqld status
.Если он не запущен, сначала запустите его:
Бьюсь об заклад, это будет работать на 110%.
источник
Вместо использования localhost:
Используйте 127.0.0.1
(также обратите внимание, что между -p и mypassword не должно быть пробела)
Наслаждаться :)
источник
127.0.0.1
работает, аlocalhost
не ?!Убедитесь, что у вас есть резервные копии важных баз данных, а затем попробуйте удалить вещи, связанные с MySQL :
Затем установите его снова :
Это сработало для меня, и данные были сохранены.
Если PHP MySQL показывает ошибки, возможно, вам придется переустановить PHP MySQL :
источник
Я также столкнулся с той же проблемой, это произойдет, если ваш
mysql server
по умолчанию не работает, он снова остановится через несколько секунд, поэтому вы снова запустите$ sudo service mysql start
команду ( ), которую вы можете изменить, если знаете.для этой команды использования
(введите пароль пользователя, если требуется, потому что мы используем
sudo
), а затем запуститетеперь вы получили свою базу данных
источник
Если ваша установка была недавней, вы должны подтвердить, является ли ваша установка установочным SERVER ... как mysql-server-5.5 .. Может быть, вы установили только "mysql" ... это только клиент, а не сервер.
источник
Если на вашем Linux-компьютере установлен XAMPP , попробуйте скопировать
my.cnf
файл из/opt/lampp/etc/my.cnf
в/etc/my.cnf
.Затем запустите
mysql -u root
снова ... Теперь у вас должен быть правильный сокет и вы сможете запустить клиент MySQL.источник
Я тоже получил эту проблему, но я только что:
Это сработало для меня.
источник
Я НАШЕЛ РЕШЕНИЕ
Перед запуском команды:
mysql_secure_installation
sudo systemctl stop mariadb
sudo systemctl start mariadb
mysql_secure_installation
Затем он спросит пароль root, и вы можете просто нажать Enter и установить новый пароль root.
источник
В моем случае порт 3306 по умолчанию использовался каким-то другим процессом, и поэтому он не запускался. После того, как я остановил другой сервис и сделал
sudo service mysql start
, он работал нормально. Кстати, вы можете использовать что-то вроде,sudo lsof -Pn -iTCP:3306
чтобы увидеть, кто может использовать порт.источник
В моем случае это сработало, выполнив некоторые исследования и разработки:
Я могу подключиться к MySQL, используя
Но это не работает с
mysql -u root -p
.Я не нашел ни одного
bind-address
в my.cnf . Поэтому я закомментировал параметр,socket=/var/lib/mysql/mysqld.sock
поmy.cnf
которому у меня возникла проблема с логином.После перезапуска службы все прошло нормально:
источник
я решил эту проблему с перезапустить MySQL
/etc/init.d/mysql stop
а также
/etc/init.d/mysql start
это оно.
источник
По своему опыту я говорю, что сначала нужно проверить, работает ли сервер, а затем попытаться настроить MySQL. Последнее решение - переустановить MySQL.
источник
Откройте терминал и введите:
И клиент ядра базы данных MySQL, и пакеты MySQL Server будут иметь одинаковую версию 5.5. MySQL Client 5.5 и MySQL Server 5.5 являются текущими «лучшими» версиями этих пакетов в Ubuntu 14.04, как определено сопровождающими пакетов.
Если вы предпочитаете установить MySQL Client 5.6 и MySQL Server 5.6, вы также можете найти пакеты mysql-client-core-5.6 и mysql-server-5.6 в Центре программного обеспечения Ubuntu. Важно то, что номера версий клиента и сервера совпадают в любом случае.
Это сработало для меня.
источник
Проверьте, есть ли у вас правильные права:
У меня были такие же проблемы, и это работало на меня. После этого я смог запустить MySQL.
источник
В моем случае кажется, что я действительно не смог убить процесс MySQL, когда я запускаю
Процесс mysql всегда был там, похоже, он блокировал файл сокета, и новый процесс mysql не смог создать его сам.
так что это помогло
Теперь я могу войти в базу данных, используя
Затем обновить пароль root:
PS : у меня были проблемы с обновлением root passwod, похоже, проблема с плагином "auth_socket", поэтому мне пришлось создать нового пользователя с полными привилегиями
Это создает пользователя «супер» без пароля, а затем вы можете подключиться с
mysql -u super
источник
use mysql;
<br> и теперь вы можете использовать егоUPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
На сервере Debian, Джесси, мое рабочее решение было просто сделать
как пользователь root
источник