MySQLへのパスワードなしのアクセスを有効にする


15

MySQLのパスワードを削除するにはどうすればよいですか?データベースに接続するためのパスワードは必要ありません。私のサーバーはUbuntuを実行しています。


ちょうど興味のある問題として、なぜパスワードが欲しくないのですか?
ジョンガーデニアーズ

たとえば、「dpkg-reconfigure phpmyadmin」を実行するとエラーが発生します。アクセスが拒否されたroot @ localhost "password:no"でエラー1045で終了します。
Lacek

回答:


29

個人的には、代わりにパスワードを設定して/root/.my.cnfに保存する方が良いと思います:

最初:

mysqladmin -u root password 'asdfghjkl'

次に、ルートの.my.cnfファイルを編集します。

[client]
password = asdfghjkl

確認してくださいchmod 0600 .my.cnf

これでパスワードは取得できましたが、パスワードの入力は求められなくなりました。デフォルトのMySQLサーバーのインストールは、各MySQLサーバーの完全にランダムな一意のパスワードであり、このように.my.cnfファイルに保存されます。


1
パスワードを削除するのではなく、自動的に認証されるように環境を設定することに強く同意します。
ゾレダチェ

2
.my.cnfでそのパスワードを引用符で囲む必要がある場合があります。それなしではうまくいきませんでした。
user67641

1
@ user67641:バージョンとパスワードの内容に依存する可能性があります...
-Freiheit

2
/root/.my.cnfを作成する必要がある場合は、他のユーザーがスヌープできないように、0600許可を明示的に設定する価値があります。ほとんどの場合、通常のユーザーは/ rootに降りることはできませんが、余分な妄想はほとんど常に保証されます。
デール・アンダーソン

欠落している mv ./+%Y%m%d。$ db.sql $ OUTPUT`のmysqldumpとgzipの間
シッダールタ

9

MySQLにパスワードが設定されている場合は、「MySQLルートパスワードの回復」の手順に従ってから、パスワードをnullに設定します。

5.7.6以降の場合

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'

5.7.5以前の場合

update user set password=PASSWORD("") where User='root';

*これを有効にするには、DBの再起動が必要です(リンクの手順を参照)。

sudo service mysql restart

この場合、「特権をフラッシュする」ことを忘れないでください。
マルコラモス

@meyosef-問題が解決した場合は回答に回答済みのマークを付けてください(投票数の下にある緑色のチェックマークをクリックしてください)。
ニーブ

ループバックではなく、Unixソケットだけに空のパスワードを使用できると思いましたが、それは不可能です。unix_socketプラグインは、わずかに異なることを行います。
流域

9

はい、パスワードを少なくすることは良いことです。しかし、全員のためにデータベースを開くだけではありません。

unix_socket経由:

grant usage on *.* to 'root'@'localhost' identified via unix_socket;

これにより、ローカルでログインしたrootユーザーのパスワードなしのmysqlアクセスが可能になります。ところで これは最近のubuntu / debianリリースのデフォルトです。

some_user@box: mysql -u root  # denied
root@box: mysql               # good
some_user@box: sudo mysql     # good, if "some_user" has sudo rights.

説明スライド:https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips


2
SFへようこそ!素敵な最初の答え:明確で、良い要約、さらなる調査のためのリンク、そしてそれは既存の答えのコーパスに何かを追加します。私はあなたの最初の賛成票になれたことを嬉しく思います。そして、このような答えをもっと書いてくれることを願っています。
MadHatter

スライドは問題ありませんが、これは実際のドキュメントです。mariadb.com
kb

5

次のこともできます。

grant all privileges on *.* to 'root'@'localhost' identified by '';

1

管理者ユーザーがローカルにアクセスしている場合、デフォルトではパスワードは設定されていないと確信しています。それとは違うものを見つけていますか?

これは機能しますか?

#> mysqladmin -u root password ''
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.