Mysql on Ubuntu 16.04: не удается войти в систему как пользователь root, не может запускаться в безопасном режиме, / var / run / mysqld удален при перезагрузке

Я не могу заставить mysql работать с Ubuntu 16.04 на Dell XPS-13 9360, mysql версии 5.7.17. Кажется, есть две проблемы:

1) Я не могу войти в систему как root или суперпользователь или запустить mysql в безопасном режиме.

2) Папка /var/run/mysqld удаляется, когда служба остановлена.

Вот подробности:

Я очистил и переустановил mysql, запустив эти команды (источник) в терминале:

sudo apt-get purge mysql* sudo apt-get autoremove sudo apt-get autoclean

Переустановил его с помощью:

sudo apt-get dist-upgrade sudo apt-get install mysql-server

После установки, когда я ввожу одну из этих команд в терминал:

mysql -uroot

или

sudo mysql -u root

Я вижу это сообщение:

ERROR 1045 (28000): Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)

Я попытался запустить mysql в безопасном режиме с помощью этих команд:

sudo /etc/init.d/mysql stop sudo mysqld_safe --skip-grant-tables &

, который не работает с этим сообщением:

2017-04-26T08:54:42.307043Z mysqld_safe Logging to syslog. 2017-04-26T08:54:42.309096Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2017-04-26T08:54:42.311019Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2017-04-26T08:54:42.313024Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

Я могу заставить mysql временно работать, введя эти команды, которые я нашел в source :

sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld sudo mysqld_safe --skip-grant-tables &

Это заменяет отсутствующий файл и запускает mysql в безопасном режиме. Затем в новом терминале:

mysql -uroot SET PASSWORD for root@localhost = password('test') FLUSH PRIVILEGES \q

остановите и перезапустите mysql в нормальном режиме

sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start

После этого я могу войти в систему, используя:

sudo mysql -uroot

или

mysql -u root -p

НО, если я остановлю и снова заново запустил службу, то я не могу войти в систему. Если я вхожу:

sudo mysql -uroot

Я вижу эту ошибку:

ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)

ОШИБКА 2002 (HY000): Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)

# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details d /var/run/mysqld 0755 mysql mysql -

Также, когда я перезагружаю компьютер, вся проблема повторяется. Я пробовал обходной путь в этой ошибке; Я создал файл mysql.conf, содержащий этот код:

/etc/mysql/mysql.conf.d /etc/tmpfiles.d

, и я сохранил его в следующих местах:

Но это не имело значения.

0
задан 26 April 2017 в 14:47

3 ответа

Кажется, исходная проблема была вызвана не установкой пароля для root, когда я впервые установил mysql. Это было нормально для локальной разработки, но похоже, что в mysql 5.7.17 это вызывает всевозможные проблемы, а установка пароля позже не исправляет его.

Это усугублялось мной, а не удалением mysql корректно при повторном попытке

В конце концов, что было сделано для удаления mysql с помощью:

sudo apt purge mysql*

Удалить папку / etc / mysql

Удалить / var / lib / mysql, / var / lib / mysql-files, / var / lib / mysql-keyring.

Перезагрузка

Установка mysql с помощью:

sudo apt-get install mysql-server

Обязательно установите пароль для root!

4
ответ дан 22 May 2018 в 23:12
  • 1
    Просто не забудьте также создать резервную копию вашего / var / lib / mysql, если вы заботитесь о данных баз данных. – TryTryAgain 4 August 2017 в 00:03

Кажется, исходная проблема была вызвана не установкой пароля для root, когда я впервые установил mysql. Это было нормально для локальной разработки, но похоже, что в mysql 5.7.17 это вызывает всевозможные проблемы, а установка пароля позже не исправляет его.

Это усугублялось мной, а не удалением mysql корректно при повторном попытке

В конце концов, что было сделано для удаления mysql с помощью:

sudo apt purge mysql*

Удалить папку / etc / mysql

Удалить / var / lib / mysql, / var / lib / mysql-files, / var / lib / mysql-keyring.

Перезагрузка

Установка mysql с помощью:

sudo apt-get install mysql-server

Обязательно установите пароль для root!

4
ответ дан 18 July 2018 в 14:14

Кажется, исходная проблема была вызвана не установкой пароля для root, когда я впервые установил mysql. Это было нормально для локальной разработки, но похоже, что в mysql 5.7.17 это вызывает всевозможные проблемы, а установка пароля позже не исправляет его.

Это усугублялось мной, а не удалением mysql корректно при повторном попытке

В конце концов, что было сделано для удаления mysql с помощью:

sudo apt purge mysql*

Удалить папку / etc / mysql

Удалить / var / lib / mysql, / var / lib / mysql-files, / var / lib / mysql-keyring.

Перезагрузка

Установка mysql с помощью:

sudo apt-get install mysql-server

Обязательно установите пароль для root!

4
ответ дан 24 July 2018 в 20:21

Другие вопросы по тегам:

Похожие вопросы: