2017-04-16 8 views
4

私はMariaDBをUbuntu LTS 16.04にインストールしました。その後、私は実行しましたMariaDB警告: 'root @ localhost'は両方とも...パスワードは無視されます

/usr/bin/mysql_secure_installation 

とルートパスワードを設定します。 mysql -u root -p経由でDBにアクセスすると問題ありません。しかしservice mysql statusで状態をチェックすると、この警告をログファイルを開きます。

[Warning] 'user' entry '[email protected]' has both a password and an authentication plugin specified. The password will be ignored. 

質問は以下のとおりです。

  1. が、これは心配または完全に正常ですか?
  2. これが心配な場合は、どうすれば修正できますか?

答えて

9

を言って、あなたは、システムのルート(またはsudo下)でありながら、それを実行していることを意味mysql -u root -pを経由してDBにアクセスして正常に動作します」場合は、正常です。あなたは普通のユーザーとしてそれをすることはできません。

Ubuntuによってデフォルトで生成されたパッケージは、ローカルルートに対してunix_socket認証を持っています。 、チェック

SELECT user, host, plugin FROM mysql.user; 

を実行するにはあなたは[email protected]ためplugin列でunix_socketが表示されるはずです。

あなたが代わりにパスワード認証を使用する場合は、あなたの詳細な返信(あなたの答えをupvoteすることができないため申し訳ありません)のための

UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket'; 
FLUSH PRIVILEGES; 
+0

おかげで多くのことを実行します!それは警告を取り除いた。しかし、サーバー再起動後にMariaDBが再起動された後、ステータスログに 'ERROR 1045(28000):ユーザー 'root' @ 'localhost'(パスワードはNO)のアクセスが拒否されました。さらに、 'service mysql restart'を介してMariaDBを再起動するともう動作しません。 – FlorianL

+0

それに応じて、Ubuntuは他のスクリプトも変更しているに違いありません。サービスを開始して監視する古い方法は、生成されたパスワードを含む 'debian.conf'を持つ' debian-sys-maint'ユーザを持つことでした。私の理解によれば、 'unix_socket'を使い始める理由の1つは、このやや厄介な遺産を取り除くことでした。スクリプトを使い続けたいと思ったら、私の通常のアドバイスは、Ubuntuが望むように( 'unix_socket'を使って)' root @ localhost'を保つことです。さらにパスワード認証で設定してあなたのために使う別のスーパーユーザーを作成します目的。 – elenst

関連する問題