Я установил MySQL, и во время установки меня попросили пароля, который я ввел, но теперь мой учитель говорит, что мы должны смочь войти в систему как корень без любого пароля.
Это работает, но я не получаю прав:
Это не работает:
Ни один не делает это
Конфигурация по умолчанию для входа в систему как root
пользователь в MySQL 5.7 требует использования сокета аутентификации. Это может быть проверено через запросы user
таблица:
mysql> select user,authentication_string,plugin from user where user='root';
+------+-----------------------+-------------+
| user | authentication_string | plugin |
+------+-----------------------+-------------+
| root | | auth_socket |
+------+-----------------------+-------------+
1 row in set (0.00 sec)
Из документации:
Плагин сокета проверяет, соответствует ли имя пользователя сокета (имя пользователя операционной системы) имени пользователя MySQL, указанному клиентской программой к серверу. Если имена не соответствуют, сменные проверки, соответствует ли имя пользователя сокета имени, указанному в authentication_string столбце mysql.user системной строки таблицы. Если соответствие найдено, плагин разрешает соединение.
Другими словами, mysql по умолчанию не установили пароль root - необходимо или выполнить phpMyAdmin как корень или через sudo
(оба из которых являются плохой идеей из соображений безопасности), или Вы изменяете метод аутентификации и изменяете пароль root как показано в Цифровом Океанском учебном руководстве.
Обратите внимание, что кроме того же имени, пользователи MySQL и пользователи системы не являются тем же. У Вас может быть пользователь MySQL jdoe
и не имейте такого пользователя в хост-системе. Таким образом, root
пользователь root MySQL, не пользователь системы.
откройте терминал и работайте sudo mysql -u root
. Необходимо видеть сообщение приветствия и mysql>
подсказка. Это - оболочка MySQL, которая отличается от Вашей оболочки командной строки, поэтому только SQL-операторы приняты здесь.
Введите следующую последовательность SQL-запросов:
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> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> UPDATE user SET plugin='mysql_native_password',authentication_string=PASSWORD('newpassword') WHERE user = 'root'
-> ;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
Выход и попытка регистрироваться:
mysql> exit
Bye
$ PS1='$ '
$ sudo mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.21-1 (Debian)
Copyright (c) 2000, 2018, 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>
Если все подходит, необходимо смочь петь в от phpMyAdmin через новый пароль. Если что-то идет не так, как надо, попытка перезапустить сервер без проверки разрешения (это - цифра шага. 3 в Цифровом Океанском учебном руководстве). Для других проблем не стесняйтесь задавать другой вопрос здесь или на Администраторах Базы данных - Exchange Стека