web-dev-qa-db-ja.com

MariaDB-rootとしてログインできない

Ubuntu(16.04.02)でMariaDB(10.0.29)をセットアップしようとしています。インストールしてプロセス(Sudo service mysql start)を開始した後、最初にパスワードを空白に設定していても、rootとしてログインできません。

つまり、mysql -u rootはアクセスを拒否します。 Sudo mysqlを使用してログインし、ユーザーテーブルを確認しました。 select user, password, authentication_string from mysql.userおよび予想どおり:

+---------+----------+-----------------------+ 
| User    | password | authentication_string |
+---------+----------+-----------------------+
| root    |          |                       |
+---------+----------+-----------------------+

また、新しいユーザーを作成しました。 create user 'test'@'localhost' identified by '';およびmysql -u test(空のパスワード)を実行しようとすると、期待どおりに動作し、ログインします。

ユーザーテーブルは次のようになります。

+---------+----------+-----------------------+
| User    | password | authentication_string |
+---------+----------+-----------------------+
| root    |          |                       |
| test    |          |                       |
+---------+----------+-----------------------+

それで、なぜ私は空のパスワードでrootとしてログインできないのに、testとしてログインできるのか理由を教えてもらえますか?

9
emihir0

ネイティブのMariaDBパッケージ(MariaDB自体によって提供されるもの)とは異なり、Ubuntuによってデフォルトで生成されるパッケージには、ローカルルートの nix_socket 認証があります。確認するには、

SELECT user, Host, plugin FROM mysql.user;

plugin列にunix_socketが表示されている場合、それが理由です。

通常のパスワード認証に戻るには、次を実行します。

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

(目的に合ったWHERE句を選択してください。上記は例にすぎません)

17
elenst

私はしばらくの間これに苦労しました。私のUbuntuには、MariaDB(10.0.31)がデフォルトで付属しています。数回再インストールし、プラグインをさまざまな提案に変更した後-私はまだmysqlに正しくログインできませんでした。

最後に、最新のMariaDB(10.2.12)をリポジトリからインストールしました: https://downloads.mariadb.org/mariadb/repositories/

すぐにきちんとログインできました。

1
Rockvole

あなたが抱えている問題は、MariaDB 10.4の認証システムの変更が原因です。

上記の変更の結果、誰にでも使える強力なrootアカウントがようやくなくなりました。 (...)rootアカウントは安全に自動的に作成されるため。それらは次のように作成されます:CREATE USER root @ localhost IDENTIFIED VIA unix_socket OR mysql_native_password USING 'invalid'

rootとして実際にDBにアクセスする場合は、cli _mariadb -p_を使用してログインし、次を実行する必要があります。

_ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("your-password-here");
_

出典: https://mariadb.com/kb/en/library/authentication-from-mariadb-104/#altering-the-user-account-to-revert-to-the-previous-authentication-method

以下の他のソリューションについて:MariaDBではplugin列も更新できないため、機能しません:ERROR 1348 (HY000): Column 'plugin' is not updatable

0
TCB13