このコマンドを実行すると:
mysql -u root -p -h 127.0.0.1 -P 3306
正しいパスワードで(はい、正しいパスワードを持っています)アクセスが拒否されました
私はまったく同じことを実行します、最初にufwを無効にするだけですSudo ufw disable
次に上記のコマンドを実行します。しかし:ufwは無効になりました:S
私が本当にやりたいことは、sshを使用してmysqlワークベンチ経由で接続することですが、ufwを完全に無効にすることなく、mysqlインストールへのsshアクセスを一切許可しませんか?
これらは、mysql-workbenchを使用して動作する現在の設定ですが、ufwが無効になっている場合のみです。 ufwを有効にするとすぐに、これは機能しなくなります。そして、ufwを使用して、3306ポートをすべての人に開放したくありません。 ssh以外のすべてを閉じて、sshを介してmysqlの3306ポートに接続したいと思います。
ループバックアダプターを介した接続をポート3306でのみ許可するには、次のコマンドを実行します。
Sudo ufw allow from 127.0.0.1 to 127.0.0.1 port 3306 proto tcp
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
この場合の-sは送信元アドレスです
先日、この問題と修正を発見しました...あなたは運がいいです!これはファイアウォールの問題ではなく、認証プラグインの問題です。
デフォルトの設定では、ファイルソケットを使用していない限り、「root」はローカルのmysqlインスタンスにログインできません。ローカルマシンにログインし、mysql -u root -p(ホストを指定せずに)を実行し、次を実行して、認証プラグインを確認します。
use mysql;
select user, plugin from user;
気づいた場合、ユーザーroot
@ localhost
はauth_socket
プラグインの代わりにmysql_native_password
プラグインを使用しています。 mysql_native_password
プラグインを使用するように変更するだけで、再起動すると問題が解決します。
use mysql;
update user set plugin='mysql_native_password' where user='root';
exit;
Sudo service mysql restart
この時点で、mysqlワークベンチをクラックして開いて、いくつかの作業を完了することができます。