Проблемы с установкой mysql в ubuntu 18.04

Я установил mysql после обновления операционной системы. Но, похоже, проблема с паролем root. Я пытался исправить это разными способами в Интернете, но пока безуспешно.

статус systemctl mysql.service дает:

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2018-05-02 16:57:24 +07; 13s ago
  Process: 6172 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=217/USER)
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Service hold-off time  over, scheduling restart.
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Scheduled restart job,  restart counter is at 5.
Thg 5 02 16:57:24 thiennguyen systemd[1]: Stopped MySQL Community Server.
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Start request repeated too quickly
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Failed with result 'exit-code'.
Thg 5 02 16:57:24 thiennguyen systemd[1]: Failed to start MySQL Community Server

journalctl -xe дает: http://codepad.org/6EbGVu2Q

mysql_secure_installation дает:

Securing the MySQL server deployment.
Enter password for user root: 
Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

mysql -u root -p дает:

Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Особенно, когда я устанавливаю, mysql не требует установки пароля для root, и я много раз переустанавливал. Может проблема старая, но в сети нашел много способов но решить не могу, так что жду помощи.


person VitVit    schedule 02.05.2018    source источник
comment
пожалуйста, обратитесь к журналу mysql для деталей.   -  person yaoweijq    schedule 02.05.2018
comment
не могу запустить, не могу найти журнал mysql   -  person VitVit    schedule 02.05.2018
comment
пожалуйста, определите команду операционной системы, чтобы узнать, как она запускает mysql. и strace вам очень поможет.   -  person yaoweijq    schedule 02.05.2018
comment
Вы запустили службу mysql?   -  person Marc Garcia    schedule 02.05.2018
comment
Эта загадочная ошибка также может произойти, если у вас есть ошибка в файле конфигурации. Прокомментируйте все измененные значения и попробуйте перезапустить службу. Затем вы можете исследовать, чтобы найти виновные параметры/значения.   -  person Toto    schedule 18.07.2018


Ответы (6)


Вы должны изменить старый пароль MySQL во время безопасной установки. Если вы не помните старый пароль, попробуйте следующий способ с привилегиями root:

Остановите службу MySQL.

service mysql stop

Запустите MySQL без проверки пароля и разрешений.

mysqld_safe --skip-grant-tables &

Подключиться к MySQL

mysql -u root mysql

Выполните следующие команды, чтобы установить новый пароль для пользователя root.

UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
service mysql restart

Некоторые новые версии не поддерживают вышеуказанный запрос UPDATE, попробуйте использовать ниже

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
person Ganesh    schedule 07.05.2018

Ответ, помеченный как правильный, технически неверен. Ubuntu 18.04 использует сокеты для авторизации, а не пароли!

(https://websiteforstudents.com/mariadb-installed-without-password-prompts-for-root-on-ubuntu-17-10-18-04-beta/)

Для меня войти в систему было так же просто, как:

sudo  mysql -u root      

Я чувствую, что тот, кто отвечает за эту «особенность», действительно ошибся. Должно было появиться сообщение о том, что Ubuntu больше не использует пароли при попытке запустить mysql. это было действительно радикальное изменение в функциональности.

person user286904    schedule 07.06.2018
comment
Я получил эту ошибку при запуске предложенной команды: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) - person juliocesar; 16.07.2019

Я знаю об этой проблеме, и при использовании 16.04 этого никогда не было. А в 18.04 я просто пытался использовать его для решения.

sudo mysql_secure_installation

В этом случае я могу установить свой пароль, но он не работает

И этот код не решает проблему.

UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
person user9866732    schedule 29.05.2018

Только после установки:

  1. sudo mysql
    

    (да, ни пользователя, ни пропуска)

  2. Теперь вы находитесь в консоли mysql:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
    
  3. FLUSH PRIVILEGES;

  4. Вот и все. Теперь вы можете войти в консоль в следующий раз, как обычно:

    mysql -u root -p my_new_pass
    
person DimiDak    schedule 12.06.2019

Последние 24 часа я пытался избавиться от этих ошибок и перейти с 16.04 на 18.04 с той же базой данных, но ни одна из просмотренных веб-страниц мне не помогла. Это был ад.

Попытка systemctl status mysql.service и journalctl -xe оказалась тупиковой - никаких подсказок.

Но ошибка:

Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)

привели меня к пониманию, что mysql-сервер 18.04 имеет немного другую структуру. Во время установки я много раз видел файл вида: /etc/mysql/FROZEN.

И только внимательно прочитав его, я понял, что моя ошибка исходила от разных версий MySQL. В нем говорилось, что я инициировал даунгрейд (с mysql-server-5.7 на mysql-server-5.6), хотя был уверен, что этого не делал, так как устанавливал mysql-server-5.7.

Единственное решение, которое сработало для меня, было: удаление всех файлов (и баз данных) из /var/lib/mysql вручную и переустановка mysql-server и mysql-client

Я скопировал их в другое место, но не смог их восстановить. Итак, проблема была в базах данных, которые нельзя было мигрировать. И я также не мог найти mysql-server-5.6 для Ubuntu 18.04 (читал, что какой-то парень сделал это, скомпилировав вручную). К счастью, это было сделано на тестовом сервере, так что ничего ценного не было потеряно. Но в любом случае, в следующий раз я сделаю резервную копию базы данных MySQL перед миграцией версии Ubuntu и сделаю чистую установку вместо того, чтобы пытаться удерживать существующие базы данных.

person sanka    schedule 03.01.2019

У меня также было много проблем как с MySQL, так и с MariaDB (ubuntu 18.04). Я не мог заставить работать MariaDB. Я использую инструкции по адресу Как принудительно удалить MySQL и MariaDB из Ubuntu 16.04 без `apt-get` и `dpkg`?

$ dpkg --list|grep -i mysql 

а также

$ dpkg --list|grep -i mariadb

$ dpkg -remove --force-remove-reinstreq <package-list>

Затем установил MySQL, как описано в https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

Теперь работает хорошо, даже после перезагрузки. Не знаю, почему это решение не получило более широкого распространения!

person Gert Kruger    schedule 16.02.2019