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