Ну, давайте сначала разъясним, что я читал, все вопросы от Спрашивают Ubuntu об этой проблеме, и я выполнил все шаги из официальных документов:
Я использую 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:/#
И теперь я действительно вне опций, таким образом, любые предложения приветствуются.
У меня была та же проблема, и я решил ее путем выполнения этой строки:
$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
прежде, чем выполнить эту строку:
root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
Для меня, эти шаги работали лучше.
я думаю, что существует более чистый способ сделать это, но для меня, это было быстрое и эффективное обходное решение.
Я не мог заставить 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
Затем:
выполненный/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 Успех.
Все сделанные!
Я имел ту же проблему и решил ее с:
# /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
содержит поле пароля.)