MariaDbの管理者パスワードが機能していないようです


8

私はMariaDb新しいUbuntu Gnomeにインストールし、その後mysql_secure_installationを実行して、まともな管理者パスワードを設定し、匿名ユーザーを削除しました。

その後、私は管理者パスワードに関するいくつかの奇妙な動作に気づきました:

  • コマンドmysql -u root -pを使用して通常のユーザーアカウントからログインしようとすると、常にエラーが発生します。前にmysql_secure_installationでERROR 1698 (28000): Access denied for user 'root'@'localhost'
    設定した正しいパスワードを入力したと確信しています...
  • を使用してrootからコマンドを実行すると、sudo mysql -u root -p実際に入力したパスワードに関係なく、常にデータベースにアクセスできます...

これは正常な動作ですか、何か問題がありますか、それともインストールをなんとかしてしまいましたか?

回答:


16

有効にすると一致し、その動作音プラグインをソケット認証 MariaDB信託オペレーティングシステムの認証情報がソケットを介して受信し、パスワードに依存しないrootユーザーのために。sudorootとして使用またはログオンすると、OSのrootになるため、データベースサーバーにrootとして接続できますが、他のOSユーザーはできません。

あなたはそのオプションを削除することができます:

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;

その後、MariaDBのrootパスワードを持っているすべてのユーザーがrootとしてログオンできるはずの予想される動作が得られます。

別の方法として、完全な管理者権限を持つrootではなく別のユーザーを設定し、管理目的でrootではなくそれを使用します。

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;

0

使用するように指定されたHBruijnからの回答

update user set plugin='' where User='root';

しかし、これは私にとってログインシステムを壊しました。誰もログインできなくなったためです(正しいパスワードを使用しているかどうか、sudoを使用しているかどうか)。

私がそれを機能させるには、代わりにこれを使用する必要がありました:

update user set plugin="mysql_native_password" where User='root';
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.