MySQL: я не могу войти в систему как root после обновления до 5.5 - PullRequest
0 голосов
/ 28 октября 2011

Я следовал этому учебнику , чтобы перейти на 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.

Привет

1022 * Javi *

Ответы [ 4 ]

1 голос
/ 10 мая 2019

В Ubuntu 18.04 от имени пользователя root:

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

Это запустит 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>
1 голос
/ 28 октября 2011

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

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

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

[код] use mysql;ОБНОВЛЕНИЕ user SET Password = ПАРОЛЬ ('YOUR_NEW_PASSWORD_HERE') WHERE User = 'root';выход;[/ code]

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

0 голосов
/ 09 июня 2015

RE: CENTOS

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

chkconfig --list mysqld

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

chkconfig --levels 345 mysqld on

... и перезагрузите компьютер.

Если это по-прежнему не работает, это помогло мне:

/ etc / init.d / mysqld stop

mysqld_safe --skip-grant-tables &

mysql -u root

mysql> use mysql;

mysql> обновить пользовательский набор пароля = ПАРОЛЬ ("newrootpassword"), где пользователь = "root";

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

mysql> выход

/ etc / init.d / mysqld stop

/ etc / init.d / mysqld start

0 голосов
/ 25 июля 2014

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

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

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

...