Я - runnig Ubuntu 16.04 и следовал этому руководству для устанавливания/сбрасывания пароля корня. Но в конце концов если я использую $ mysql -u root -p
, или sudo mysql -u root
на моей командной строке и вводят новый пароль, я получил это сообщение об ошибке:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Если я использую пользователя und пароль от /etc/mysql/debian.cnf
нет никаких проблем для входа в систему с mysql -udebian-sys-maint -p
.
И если я делаю так в mysql и запросе для некоторой темы
mysql> select User, authentication_string, password_expired, password_last_changed, password_lifetime, account_locked from mysql.user;
+------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
| User | authentication_string | password_expired | password_last_changed | password_lifetime | account_locked |
+------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
| root | *obfuscated_authentication_string======== | N | 2018-11-21 17:02:55 | NULL | N |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | N | 2018-11-21 17:02:48 | NULL | Y |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | N | 2018-11-21 17:02:48 | NULL | Y |
| debian-sys-maint | *obfuscated_authentication_string======== | N | 2018-11-21 17:02:55 | NULL | N |
+------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
Я вижу, что пароль корня никогда не изменялся со времени установки.
Если я следую этим инструкциям, я получаю pid фонового задания после шага 3, и оболочка запрашивает
$ 2019-07-11T14:21:55.218651Z mysqld_safe Logging to syslog.
2019-07-11T14:21:55.226406Z mysqld_safe Logging to '/var/log/mysql/error.log'.
/usr/bin/mysqld_safe: 152: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
2019-07-11T14:21:55.232708Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
/usr/bin/mysqld_safe: 152: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
mysql -u root mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[1]+ Exit 1 mysqld_safe --skip-grant-tables
в то время как я попытался выполниться mysql -u root mysql
.
Чему нужно I, чтобы сделать для чистки, установки или изменения пароля корня?
Или действительно ли возможно достигнуть этого из пользователя debian-sys-maint?
Любая подсказка приветствуется.
По крайней мере, я нашел следующее решение с пользователем и паролем от /etc/mysql/debian.cnf
без start-/stopping любой service
ни sudo
:
Войдите в систему от стандартной оболочки:
$ mysql -udebian-sys-maint -p
Enter password:
Затем внутри mysql
:
mysql> use mysql;
mysql> set password for 'root'@'localhost' = password("xXnew_pwXx");
mysql> flush privileges;
mysql> quit;
Теперь, не перезапуская сервиса я могу войти в систему только с
$ mysql -u root -p
Enter password:
и новый пароль xXnew_pwXx.
Теперь это должно ясно видеть, что пароль корня был изменен.
mysql> select User, password_last_changed, password_lifetime, account_locked from mysql.user;
+------------------+-----------------------+-------------------+----------------+
| User | password_last_changed | password_lifetime | account_locked |
+------------------+-----------------------+-------------------+----------------+
| root | 2019-07-11 16:49:52 | NULL | N |
| mysql.session | 2018-11-21 17:02:48 | NULL | Y |
| mysql.sys | 2018-11-21 17:02:48 | NULL | Y |
| debian-sys-maint | 2018-11-21 17:02:55 | NULL | N |
+------------------+-----------------------+-------------------+----------------+
4 rows in set (0,00 sec)
Вот именно ;)