このエントリーをはてなブックマークに追加


sudoなしだとrootでログインできない場合の対処

本資料では、MariaDBをインストールし mysql_secure_installation コマンドで rootのパスワードを設定したあと、以下のコマンドを実行したらログインできなかった場合の対処です。

$ mysql -u root -h localhost -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

動作確認環境

  • Ubutnu 20.04 (Ubuntu MATE 利用)
  • MariaDB
    MariaDB [(none)]> select version();
    +--------------------------+
    | version()                |
    +--------------------------+
    | 10.3.22-MariaDB-1ubuntu1 |
    +--------------------------+

インストール直後の動作確認

aptコマンドで以下のようにMariaDBをインストールし、mysql_secure_installationでrootパスワードを設定した状態です。
sudoを使えばログインできますが、sudoなしの場合は Access denied となってしまいました。

$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
$ sudo mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 56
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>

sudoなしで mysql -u root -p が動作するようにする

以下の手順でsudoなしで接続できることを確認しました。

  1. MariaDBに接続
    sudo mysql -u root
  2. 接続されたら、以下のSQLを実行します。
    パスワード部分 sakura を皆さんの環境に合わせて変更してください。
    grant all privileges on *.* to root@localhost identified by 'sakura' with grant option;
     
    flush privileges;
     
    exit
     
    sudoなしで再度MariaDBに接続します。
    $ mysql -u root -p 
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 77
    Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> 

上記の通り、sudoなしで接続できました。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-12 (日) 00:25:39