GNU/Linux >> Linux の 問題 >  >> Ubuntu

Mysqlにルートとしてログインする方法は?

MySQLをインストールしましたが、インストール中に入力したパスワードの入力を求められましたが、先生から、パスワードなしでrootとしてログインできるはずだと言われました。

これは機能しますが、特権を取得できません:

これは機能しません:

これもそうではありません

承認された回答:

問題の原因

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ユーザー名と一致するかどうかを確認します。
名前が一致しない場合、プラグインはソケットユーザー名がmysql.userシステムテーブル行の
authentication_string列で指定された名前と一致するかどうかを
チェックします。
一致するものが見つかった場合、プラグインは接続を許可します。

つまり、デフォルトではmysqlにrootパスワードが設定されていません。phpMyAdminをrootとして実行するか、sudoを介して実行する必要があります。 (どちらもセキュリティ上の理由からお勧めできません)、またはDigital Oceanチュートリアルに示すように、認証方法を変更してルートパスワードをリセットします。

同じ名前を除いて、MySQLユーザーとシステムユーザーは同じではないことに注意してください。 MySQLユーザーをjdoeにすることができます ホストシステムにはそのようなユーザーがいません。したがって、root はMySQLのrootユーザーであり、システムユーザーではありません。

プラグインとパスワードを変更する手順:

  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
    
    $ sudo systemctl restart mysql
    $ 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からサインインできるはずです。問題が発生した場合は、許可を確認せずにサーバーを再起動してみてください(これは、Digital Oceanチュートリアルのステップ番号3です)。その他の問題については、ここまたはデータベース管理者– Stack Exchange

で別の質問をしてください。 関連:tempdbの複数のDATAファイルを作成するときにLOGファイルを作成しますか?
Ubuntu
  1. MySQLまたはMariaDBのルートパスワードをリセットする方法

  2. AlmaLinux8にMySQLをインストールする方法

  3. Ubuntu18.04LTSにMySQLをインストールする方法

  1. ルートMySqlパスワードをリセットする方法

  2. ルートMySqlパスワードをリセットする方法

  3. MySQLルートパスワードをリセットする方法

  1. MySQLデータベース内のすべてのユーザーを一覧表示する方法

  2. MySQLユーザーアカウントを削除または削除する方法

  3. ルートパスワードをリセットする方法MySQLサーバー