Я установил 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, и я переустанавливал много раз. Может быть, проблема старая, но я нашел много способов в сети, но не могу ее решить, поэтому с нетерпением ждем помощи.
Вы должны изменить старый пароль 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
Ответ, помеченный как правильный, технически неверен. Ubuntu 18.04 использует сокеты для авторизации, а не пароли!
Для меня вход в систему был прост:
sudo mysql -u root
Я чувствую, что тот, кто несет ответственность за эту "особенность", действительно бросил мяч. Должно было появиться сообщение о том, что Ubuntu больше не использует пароли при попытке запустить mysql. это было действительно радикальное изменение в функциональности.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Я знаю об этой проблеме, и когда используется 16.04, этого никогда не было. И в 18.04, я просто попытался использовать его для решения.
sudo mysql_secure_installation
В этом случае я могу установить свой пароль, но он не работает
И этот код не решает проблему.
UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
После установки просто:
sudo mysql
(да, нет пользователя нет прохода)
Теперь вы находитесь в консоли MySQL:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
Это. Теперь вы можете войти в консоль в следующий раз, как обычно:
mysql -u root -p my_new_pass
У меня также было много проблем с 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/
Работает хорошо теперь даже после перезагрузки. Не знаю, почему это решение не так широко распространено!
Последние 24 часа я пытался избавиться от этих ошибок и перейти с 16.04 на 18.04 с той же базой данных, но ни одна из всех просмотренных мной веб-страниц мне не помогла. Это был ад.
Проверка состояния systemctl 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 и чистой установки, вместо того, чтобы пытаться сохранить существующие базы данных.