私は mariadb をインストールしており、Linux のルート ユーザーとして、mysql コマンドを実行してデータベースにアクセスできます。しかし、通常の Linux ユーザーとしてログインして実行しようとするとmysql -u root -p
、エラーが発生します。
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
mysql ルート ユーザーのパスワードをリセットするなど、いくつかの方法を試しましたが、効果はありませんでした。
どんな助けでも大歓迎です。
答え1
私も同じ問題を抱えていましたが、それは「mysql.user」テーブルの「plugin」値によって発生していました。
この回答を試してみましたか:https://askubuntu.com/a/636579/299538
その理由はこうです。https://superuser.com/a/1071043/592085
答え2
MariaDB では通常のユーザーでログインできないため、root アクセスするか、 を使用する必要がありますsudo
。別の解決策としては、完全な権限を持つ別の root ユーザーを追加します。
sudo で db に接続します:
sudo mysql -u root
現在のデータベースでアカウントを確認してください:
mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
ユーザーを再作成しますroot
(必要な場合はパスワードを使用します):
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';
許可を与える:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
流す:
mysql> FLUSH PRIVILEGES;
データベースの使用状況を表示:
SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | localhost |
+------+-----------+
終了して通常のユーザーで接続します:
mysql -u root