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