MySQL: я не могу войти в систему как root после обновления до 5.5

#mysql #mysql5

#mysql #mysql5

Вопрос:

Я следовал этому руководству для обновления до mysql 5.5.

После завершения всех шагов, которые я делаю $ mysql -u root -pXXXX , и он говорит:

 Error 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES).
 

Учебник работал для меня некоторое время назад, но теперь у меня есть эта проблема. Я переустановил ubuntu mysql 5.1, и у меня нет проблем с выполнением «mysql -u root -pXXXX», но после обновления до 5.5 я снова получаю ошибку, указанную выше..

Это мой /etc/my.cnf:

 # The following options will be passed to all MySQL clients
[client]
#password    = your_password
port        = 3306
socket        = /var/run/mysqld/mysqld.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
user            = mysql
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir         = /usr/local/mysql
datadir         = /usr/local/mysql/data
tmpdir          = /tmp
log_error       = /var/log/mysql/error.log
skip-external-locking
...
 

Есть какие-нибудь идеи?

РЕДАКТИРОВАТЬ: решаемая, хорошо.. Я просто должен сделать резервную копию пользователя ‘root’, так как я удаляю базу данных перед обновлением до версии 5.5.

С уважением

Javi

Ответ №1:

Это просто говорит о том, что вы используете неправильный пароль на самом деле…

Возможно, вам нужно сбросить пароль root, хотя я не знаю почему (возможно, программа обновления переписала его?), Вот процедура:

  1. убедитесь, что не запущены деамоны mysqld.
  2. перейдите в свой каталог mysql / bin
  3. запустите mysql deamon с mysqld_safe --skip-grant-tables помощью (обратите внимание на PID)
  4. запустите командную строку mysql: mysql
  5. выполните этот небольшой скрипт с вашим редактированием:

[код] использовать mysql ; ОБНОВИТЬ user НАБОР Password =ПАРОЛЬ (‘YOUR_NEW_PASSWORD_HERE’) ГДЕ User = ‘root’; выход; [/code]

Теперь вам нужно только убить свой mysqld_safe (помните PID? ..) и запустить деамон в обычном режиме.

Комментарии:

1. спасибо, но пользователь root исчез. Я ищу информацию для создания нового, но я ничего не нахожу .. есть идеи?

2. это действительно странно. вы можете выполнить команду: GRANT ALL PRIVILEGES ON *.* TO root@'127.0.0.1' IDENTIFIED BY 'your-password-here'; находясь в безопасной оболочке mysql.

Ответ №2:

В Ubuntu 18.04, как пользователь root:

 # service mysql stop
# mkdir /etc/run/mysql amp;amp; chown -R mysql:mysql /etc/run/mysql
# mysqld_safe --skip-grant-tables --user=mysql amp;
 

Это запустит mysql без проверки пользователя root. Затем в другом окне терминала / ssh вы можете запустить клиент mysql и изменить пароль пользователя root:

 # mysql -u root
mysql> FLUSH PRIVILEGES;
mysql> use mysql;
mysql> UPDATE user SET authentication_string = PASSWORD('NeWPaSSWoRD') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
 

Затем остановите процесс mysqld_safe в первом терминале. Замените «processid» ниже содержимым /var/run/mysqld/mysqld.pin .

 # kill -9 "processid"
 

Запустите mysql и попробуйте войти в систему снова.

 # service mysql start
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.26-0ubuntu0.18.04.1-log (Ubuntu)
mysql>
 

Ответ №3:

Избавьте себя от СЕРЬЕЗНОЙ головной боли… Ваша проблема может заключаться в том, что вам не хватает кавычек вокруг пароля. Особенно потому, что вы действительно можете войти в систему, минуя переключатель -p, а не используя свой .my.cnf.

 [client]
user = myusername
password = "mypassword"
host = localhost
 

http://dev.mysql.com/doc/refman/5.5/en/option-files.html

Ответ №4:

RE: CENTOS

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

chkconfig —list mysqld

Если нет, то добавьте mysql в сценарий запуска:

chkconfig —уровни 345 mysqld на

… и перезагрузитесь.

Если это все еще не работает, это помогло мне:

/etc/init.d/mysqld остановить

mysqld_safe —skip-grant-tables amp;

mysql -u root

mysql> использовать mysql;

mysql> обновить пароль пользователя = ПАРОЛЬ («newrootpassword»), где User = ‘root’;

mysql> сбросить привилегии;

mysql> выйти

/etc/init.d/mysqld остановить

/etc/init.d/mysqld запуск