web-dev-qa-db-ja.com

パスワードプロンプトなしでインストールされたMariaDB

Ubuntuソフトウェアセンターまたはコマンドプロンプト(apt-get install maraidb-server)を使用してUbuntu 15.04リポジトリからmariadbをインストールしましたが、rootユーザーにパスワードは要求されません。パスワードなしでコマンドラインでmysqlに接続できるようになりましたが、Mysql-Workbenchまたはpython mysqldbライブラリを使用して接続すると、「ユーザー 'root' @ 'localhost'のアクセスが拒否されました」メッセージ

20
mtoloo
Sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;
[mysql] \q
50
Aashish
Sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;
[mysql] \q

これには、次のコマンドが続く必要があります

# mysql_secure_installation
9
user1459342

localhostからアクセスする場合、rootがパスワードなしでアクセスするのが一般的です。この設定はそのままにしておくことをお勧めします。

また、権限の少ないユーザーを作成し、そのユーザーがリモートでログインできるようにすることもお勧めします。

create user my_admin identified by '12345';
create database my_database;
grant all on my_database.* to my_admin;

これにより、セキュリティが少し強化されます。

ワークベンチなどのツールからルートとして接続する必要がある場合は、これらのツールを設定してsshトンネルを作成し、localhostとしてデータベースに接続できます。

5
santiago arizti

@Pedruが気づいたように、「ユーザー 'root' @ 'localhost'のアクセスは拒否されました」というメッセージは、 DebianおよびUbuntuはデフォルトでUNIX_SOCKET認証プラグインプラグインを有効にする であり、パスワードなしのログインを許可します( 認証プラグイン-Unixソケット )。これはインストールの問題ではありません。

つまり、Linuxシェルで_mysql -u root -p_と入力すると、rootは実際にはLinuxのルートになります(またはリンクされているため、実際にどのように機能するのかわかりません)。そのため、別のアカウントでLinuxにログオンすると、エラーが発生します:ERROR 1698 (28000): Access denied for user 'root'@'localhost'。パスワードがまだ定義されていない場合は、_Sudo mysql -u root -p_または_Sudo mysql -u root_を入力してください。

2
Jean-Baptiste