Page 2 of 2

Re: Пароль root к mysql

Posted: Sat Mar 14, 2020 12:43 pm
by karpo518
prmres wrote: Mon Mar 25, 2019 6:34 pm так давно разработчики (mysql и mariadb) сделали, но можно подкрутить:
viewtopic.php?f=32&t=17927
Вы своим ответом ничего не объяснили. По ссылке указано, где лежит пароль и как его сбросить.
Вопрос тот же, что и у Mikhail29! Почему после установки чистой системы у меня нет на руках пароля root к mysql? Пароли из /root/.my.cnf и /root/.my.cnf не подходят! ОС Ubuntu 18.04

Re: Пароль root к mysql

Posted: Sat Mar 14, 2020 1:55 pm
by imperio
karpo518 wrote: Sat Mar 14, 2020 12:43 pm
prmres wrote: Mon Mar 25, 2019 6:34 pm так давно разработчики (mysql и mariadb) сделали, но можно подкрутить:
viewtopic.php?f=32&t=17927
Вы своим ответом ничего не объяснили. По ссылке указано, где лежит пароль и как его сбросить.
Вопрос тот же, что и у Mikhail29! Почему после установки чистой системы у меня нет на руках пароля root к mysql? Пароли из /root/.my.cnf и /root/.my.cnf не подходят! ОС Ubuntu 18.04
Потому что начиная с версии mysql 5.7 разработчики ограничили возможность авторизации в mysql по root. Как сказано - в целях безопасности. Но доступ по root можно принудительно включить или создать пользователя

Code: Select all

mysql -u root -p

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;

systemctl start mysql 

Re: Пароль root к mysql

Posted: Sat Mar 14, 2020 5:19 pm
by karpo518
imperio wrote: Sat Mar 14, 2020 1:55 pm Но доступ по root можно принудительно включить или создать пользователя

Code: Select all

mysql -u root -p

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;

systemctl start mysql 
Спасибо за ответ. Я, к сожалению, окончательно запутался. Ранее я использовал команду: mysql -h 127.0.0.1 -u root -p
Как уже говорил ранее, я не мог войти из-за сообщения Access denied for user 'root'@'localhost'

Мне показалось странно, что в предлагаемом вам решением первой же строкой идет авторизация в mysql, которая у меня как раз не срабатывала. Но я попробовал выполнить строку: mysql -u root -p

Удивительно, но я смог успешно авторизоваться по паролю из файла /root/.my.cnf ! Я выполнил остальные строки из вашего совета, а потом попробовал снова войти в консоль mysql под root. Обе команды (mysql -u root -p и mysql -h 127.0.0.1 -u root -p) приводят к ошибке Access denied for user 'root'@'localhost'. В результате я даже не понял, чего добился своими командами. Пробовал использовать пароль root сервера и пустой пароль. Ничего не подходит. На всякий случай прикладываю листинг.
SpoilerShow

Code: Select all

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112841
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set plugin='' where User='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.18 sec)

mysql> exit;
Bye
~# systemctl start mysql
~# mysql -h 127.0.0.1 -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Re: Пароль root к mysql

Posted: Sat Mar 14, 2020 6:11 pm
by imperio
Тогда попробуйте вообще изменить root пароль

/etc/mysql/mysql.cnf
перед

Code: Select all

skip-external-locking
добавьте

Code: Select all

skip-grant-tables
Сохраните изменения

Перезапустим mysql

Code: Select all

service mysql restart
Заходим

Code: Select all

mysql -u root
Назначаем новый пароль для рута

Code: Select all

UPDATE mysql.user SET authentication_string=PASSWORD('1111111'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
вместо 1111111 - новый пароль
Обновим таблицу привилегий

Code: Select all

FLUSH PRIVILEGES;
пробуем к примеру авторизоваться в phpmyadmin под root mysql

Re: Пароль root к mysql

Posted: Sat Mar 14, 2020 6:51 pm
by karpo518
Тогда попробуйте вообще изменить root пароль
Спасибо за подробную инструкцию! Всё получилось! Но есть пара дополнительных вопросов.

1. Нужно ли теперь удалить строку "skip-grant-tables"?
2. Ссылка на phpadmin http://ip-адрес/phpmyadmin/ открывает белый экран. Подозреваю, что он изначально не работал. Как починить?

Re: Пароль root к mysql

Posted: Sat Mar 14, 2020 7:19 pm
by imperio
Можно удалить.
Белый экран обычно означает, проблемы с php. Желательно посмотреть логи ошибок. В логах должно быть сообщение о причинах.
Раундкубе также белый экран?