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

mysql (mariadb) エラー 1698 (28000):ユーザー 'root'@'localhost' のアクセスが拒否されました

そのためには password.so をリセットする必要があります

sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;

新しいセットアップのアイデアは、パスワードをまったく使用してはならないということです。詳細については、UNIX_SOCKET 認証プラグインを参照してください。

特に関連するのは /usr/share/doc/mariadb-server-10.0/README.Debian.gz の内容です Ubuntu 16.04:

<ブロック引用>

新規インストールでは root パスワードは設定されておらず、debian-sys-maint ユーザーはもう作成されていません。代わりに、MariaDB ルート アカウントは UNIX ソケットを使用して認証されるように設定されます。 root または sudo 経由で mysqld を呼び出すと、ユーザーに mysqld プロンプトが表示されます。

mysql ユーザー「root」を決して削除しないでください。パスワードは設定されていませんが、unix_auth プラグインにより、root ユーザーとしてローカルでのみ実行できることが保証されます。

/etc/mysql/debian.cnf の資格情報は、サーバーを停止してログローテーションを実行するために init スクリプトによって使用されるユーザーを指定します。これは以前は debian-sys-maint ユーザーでしたが、root が直接実行できるため使用されなくなりました。

そのため、root のプラグインを無効にしてパスワードを設定すると、毎日の cron ジョブは、パスワードなしでプラグインを使用して root としてログインすると想定されるため、機能しなくなります。

後でそれは言います:

<ブロック引用>

スクリプトは、ユーザーが必要な権限を持ち、unix_socket を介して識別されているときに実行する必要があります。

そのため、アプリケーションでパスワードを使用するべきではないようです。


この投稿の回答に従って問題を解決しました:

MySQL (MariaDB) ルート パスワードをリセットできません

すべてのルートの mysql.user のプラグイン フィールドを空白文字列に変更する必要があります。


Linux
  1. ユーザーのルートレスPodmanへのアクセスの制御

  2. エラーアクセス拒否にはPROCESS特権が必要です[MySQL]

  3. CentOS で root ユーザーの単純なパスワードを有効にする

  1. MySQLまたはMariaDBのルートパスワードをリセットする方法

  2. root ユーザーの ulimit を決定する

  3. パスワードなしで Linux root ユーザー mysql root アクセスを許可する

  1. MySQL - エラー 1045 - アクセスが拒否されました

  2. パスワードのリセット後、ユーザー 'root'@'localhost' (パスワードを使用:はい) のアクセスが拒否される LINUX

  3. エラー 1045 (28000):ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用:YES)