#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, хотя я не знаю почему (возможно, программа обновления переписала его?), Вот процедура:
- убедитесь, что не запущены деамоны mysqld.
- перейдите в свой каталог mysql / bin
- запустите mysql deamon с
mysqld_safe --skip-grant-tables
помощью (обратите внимание на PID) - запустите командную строку mysql:
mysql
- выполните этот небольшой скрипт с вашим редактированием:
[код] использовать 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
Ответ №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 запуск