X.x.x.xで実行されているmysqlサーバーがあり、内部的に問題なくアクセスできます(もちろん)。ただし、外部に接続しようとすると、つまりmysqlワークベンチを使用して、または外部サーバーからでも、「ホスト 'bla.bla.bla'はこのMySQLサーバーに接続できません」というエラーメッセージが表示されます。
私はやった:
GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "somepass";
私が見逃している別の基本的なセキュリティ問題はありますか?
あなたがする必要があります
GRANT ALL PRIVILEGES ON *.* TO mysql@'bla.bla.bla' ...
@
の後の部分は接続元のホストであるため、ローカルホストからの接続のみを許可しています。必要な各リモートホスト(またはすべてのホスト-... mysql@'%' ...
-該当する場合)からのアクセスを許可する必要があります。
これを解決するには、次のコマンドを実行する必要がありました。
mysql -u root -p
[enter in your password]
CREATE USER 'mysqluser'@'%' IDENTIFIED BY 'aC0MPL3XPa33W0RD';
GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'%' WITH GRANT OPTION;
私はまったく同じような状況にありました。私のMYSQLはcentOSにインストールされています。ニルヴァーナへの道は以下の通りです。
解決策:iptablesに釣りに行き、次の変更を加えました:
以下のステートメントを見つけた場合は、行の先頭に「#」を追加してコメントを付けてください。
-A INPUT -s 123.123.123.123/32 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
次のコマンドを使用してiptablesを再起動します。serviceiptablesrestart
うん、それは私のために働いた。それが誰かに役立つことを願っています。
サーバーを取得したとき、MySQLクライアントアプリケーションからmysqlにアクセスするときに同じ問題が発生した場合でも、次のクエリを使用してMysql権限を付与しました。
それはうまくいきました
**GRANT ALL PRIVILEGES ON db_base.* TO db_user @'%' IDENTIFIED BY 'db_passwd';**
db_base is the database Name
db_user is database User
db_passwd is the database password
これを実行したら、次のコマンドでフラッシュしますFLUSH PRIVILEGES;
データベース内の特定のテーブルにアクセスするための特権を付与しようとしている場合は、次のコマンドを使用できます。
GRANT ALL PRIVILEGES ON db_base.HELLOWORLD TO db_user @'%' IDENTIFIED BY 'db_passwd';
ここで、HELLOWORLD
はテーブル名です
このbind-address
thingの背後にあるセキュリティの詳細はわかりません。仮想ボックスマシンにDebianサーバーをインストールして学習するだけです。このゲストは仮想ネットワークカードをブリッジとして設定しているので、家の残りの部分がそれを見ることができます。そのIPは192.168.1.4です。別のコンピューター(192.168.1.3)から、bind-address = 127.0.0.1
で接続に失敗しました。 bind-address = 192.168.1.4
の設定は正常に機能します。 (それ自身のアドレス、文字通り)それは仮想構成内の127.0.0.1の解釈でなければなりません、確かではありません...
ユーザーmysqlとして接続していますか? GRANTクエリを次のように実行してみてください:GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "somepass";
Mysqlワークベンチが適切なユーザー名を使用して接続を試みていることを確認しましたか?付与コマンドを実行した後、 特権をフラッシュしました しましたか?