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

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

1) Я не могу войти в систему как корень или суперпользователь, или запустить 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

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

ОШИБКА 1045 (28000): Доступ запрещен для пользователя 'базируется' '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, работающий временно путем ввода этих команд, в которых я нашел После новой установки mysql-сервера, не может войти в систему с mysql root -u:

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

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

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

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

# systemd tmpfile settings for mysql
# See tmpfiles.d(5) for details

d /var/run/mysqld 0755 mysql mysql -

и я сохранил его в этих местоположениях:

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

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

Я был бы очень благодарен за любую информацию, которая может помочь мне получить работу mysql!

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

1 ответ

Кажется, что исходная проблема была вызвана, не установив пароль для корня, когда я сначала установил 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

Удостоверяются, что установили пароль для корня!

4
ответ дан 3 November 2019 в 09:11

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

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