Как я вхожу в систему как корень в MySQL?

Я установил MySQL, и во время установки меня попросили пароля, который я ввел, но теперь мой учитель говорит, что мы должны смочь войти в систему как корень без любого пароля.

Это работает, но я не получаю прав:

login prompt username phpmyadmin

Это не работает:

login prompt username root, password has been entered, no access

Ни один не делает это

login prompt, username root, no password, no access

4
задан 1 January 2019 в 15:52

1 ответ

Причина проблемы

Конфигурация по умолчанию для входа в систему как 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, не пользователь системы.

Шаги для изменения плагина и пароля:

  1. откройте терминал и работайте sudo mysql -u root. Необходимо видеть сообщение приветствия и mysql> подсказка. Это - оболочка MySQL, которая отличается от Вашей оболочки командной строки, поэтому только SQL-операторы приняты здесь.

  2. Введите следующую последовательность 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
    
  3. Выход и попытка регистрироваться:

    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 Стека

10
ответ дан 1 December 2019 в 08:58

Другие вопросы по тегам:

Похожие вопросы: