Не мог изменить пароль root MySQL, попробовал все

Ну, давайте сначала разъясним, что я читал, все вопросы от Спрашивают Ubuntu об этой проблеме, и я выполнил все шаги из официальных документов:

help.ubuntu.com

dev.mysql.com

Я использую Ubuntu 16.04.1 LTS

Таким образом, прежде чем кто-то предлагает что-либо, что я, вероятно, уже попробовал, я собираюсь показать то, что я сделал:

root@localhost:/# sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.

MySQL останавливается правильно.

root@localhost:/# sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 3316
root@localhost:/#

Здесь я не знаю, работало ли это или нет, таким образом, я выполняю шаги так или иначе.

root@localhost:/# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
root@localhost:/#

Кажется, что это не работает, поскольку сервис не запускается. Поскольку я не могу продолжить следующие шаги, я пробую другой метод (чистка).

После использования:

sudo apt-get --purge remove
sudo apt-get install

Я пробую следующий шаг:

root@localhost:/# mysqladmin -u root password MyNewPassword
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
root@localhost:/#

Поскольку это также не работает, я попробовал другие методы, упомянутые в mysql сети:

Таким образом, я уничтожаю процесс mysql, как указано тут же, я использую

root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
[1] 5267
root@localhost:/# 2017-02-01T12:47:49.250083Z mysqld_safe Logging to syslog.
2017-02-01T12:47:49.252427Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.254765Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.257045Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

[1]+  Salida 1                mysqld_safe --init-file=/home/me/mysql-init
root@localhost:/#

Теперь, когда я выходил из опций, таким образом, я также пробую другой метод, упомянутый здесь на, Спрашивает Ubuntu:

root@localhost:/# sudo dpkg-reconfigure mysql-server-5.7
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.17, use --force if you still need to run mysql_upgrade
root@localhost:/#

И теперь я действительно вне опций, таким образом, любые предложения приветствуются.

9
задан 10 February 2019 в 15:20

3 ответа

У меня была та же проблема, и я решил ее путем выполнения этой строки:

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld

прежде, чем выполнить эту строку:

root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &

Для меня, эти шаги работали лучше.

я думаю, что существует более чистый способ сделать это, но для меня, это было быстрое и эффективное обходное решение.

16
ответ дан 23 November 2019 в 04:51

Я не мог заставить mysql переустанавливать то независимо от того, что я попробовал, я закончил тем просто, что должен был попытаться изменить пароль.

Я должен был пойти этим путем на Ubuntu 16.04.1 LTS. Я провел час или больше попытки всех других предложений от веб-сайта MySql до всего на Так, а также Вопросы и ответы AskUbuntu, я наконец получил его работающий с:

Примечание: в то время как это показало, Вводят пароль для пользовательского корня, у меня не было старого пароля, таким образом, я просто ввел тот же пароль, который будет использоваться в качестве нового пароля.

Примечание: не было никакого /var/log/mysqld.log только /var/log/mysql/error.log

Также обратите внимание, что это не работало на меня:
sudo dpkg-reconfigure mysql-server-5.7

Ни сделал:
sudo dpkg-reconfigure --force mysql-server-5.5

Сделайте сервисный каталог MySQL.
sudo mkdir /var/run/mysqld

Дайте полномочия пользователя MySQL записать в сервисный каталог.
sudo chown mysql: /var/run/mysqld

Затем:

  1. уничтожьте текущий mysqld pid
  2. выполненный mysqld с sudo/usr/sbin/mysqld и
  3. выполненный/usr/bin/mysql_secure_installation

    Вывод от mysql_secure_installation

    root@myServer: ~#/usr/bin/mysql_secure_installation

    Обеспечение развертывания серверов MySQL.

    Введите пароль для пользовательского корня:

    ПРОВЕРЬТЕ ПЛАГИН ПАРОЛЯ, может использоваться, чтобы протестировать пароли и улучшить безопасность. Это проверяет силу пароля и позволяет пользователям устанавливать только те пароли, которые достаточно безопасны. Хотели бы Вы устанавливать, ПРОВЕРЯЮТ плагин ПАРОЛЯ?

    Нажмите y|Y для Да, любой другой ключ для номера: никакой Используя текущий пароль для корня. Изменить пароль для корня? ((Нажимают y|Y для Да, любой другой ключ для No): y

    Новый пароль:

    Повторно введите новый пароль: По умолчанию установка MySQL имеет анонимного пользователя, позволяя любому войти в MySQL, не имея необходимость создавать учетную запись пользователя для них. Это предназначается только для тестирования, и заставить установку пойти немного более гладкая. Необходимо удалить их прежде, чем переместиться в продуктивную среду.

    Удалить анонимных пользователей? (Нажмите y|Y для Да, любой другой ключ для No): y Успех.

    Обычно, корню нужно только позволить соединиться от 'localhost'. Это гарантирует, что кто-то не может предположить пароль root из сети.

    Запретить корневой вход в систему удаленно? (Нажмите y|Y для Да, любой другой ключ для No): y Успех.

    По умолчанию MySQL идет с базой данных, названной 'тестом', к которому любой может получить доступ. Это также предназначается только для тестирования и должно быть удалено прежде, чем переместиться в продуктивную среду.

    Удалить тестовую базу данных и доступ к ней? (Нажмите y|Y для Да, любой другой ключ для No): y

    • Отбрасывание тестовой базы данных... Успех.

    • Удаление полномочий на тестовой базе данных... Успех.

    Перезагрузка таблиц полномочия гарантирует, что все изменения, внесенные до сих пор, сразу вступят в силу.

    Таблицы полномочия перезагрузки теперь? (Нажмите y|Y для Да, любой другой ключ для No): y Успех.

    Все сделанные!

1
ответ дан 23 November 2019 в 04:51

Я имел ту же проблему и решил ее с:

# /etc/init.d/mysql stop
# service mysql stop
# mkdir -p /var/run/mysqld
# chown mysql:mysql /var/run/mysqld
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=password('1234') where user='root';

(Здесь, authentication_string содержит поле пароля.)

0
ответ дан 23 November 2019 в 04:51

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

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