9

xxxxで実行されているmysqlサーバーがあり、内部的に問題なくアクセスできます(もちろん)。ただし、外部に接続しようとすると、つまりmysqlワークベンチを使用して、または外部サーバーからでも、「ホスト'bla.bla.bla'はこのMySQLサーバーに接続できません」というエラーメッセージが表示されます。

私はやった:

  • GRANT ALL PRIVILEGES ON *.* TO mysql@x.x.x.x IDENTIFIED BY "somepass";
  • そして、iptablesでポート3306を開きました。

私が見逃している別の基本的なセキュリティの問題はありますか?

4

8 に答える 8

14

あなたがする必要があります

GRANT ALL PRIVILEGES ON *.* TO mysql@'bla.bla.bla' ...

後の部分@は接続元のホストであるため、ローカルホストからの接続のみを許可しています。必要な各リモートホスト(またはすべてのホスト---... mysql@'%' ...該当する場合)からのアクセスを許可する必要があります。

于 2011-05-06T18:33:52.180 に答える
9

これを解決するには、次のコマンドを実行する必要があります。

mysql -u root -p
[enter in your password]
CREATE USER 'mysqluser'@'%' IDENTIFIED BY 'aC0MPL3XPa33W0RD';
GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'%' WITH GRANT OPTION;
于 2012-07-17T09:49:58.177 に答える
4

私はまったく同じような状況にありました。私のMYSQLはcentOSにインストールされています。ニルヴァーナへの道は以下の通りです。

  1. bind-address:動作しませんでした
  2. 許可を与える:機能しませんでした
  3. オフの場合のIptables:DIDは機能します。

解決策:iptablesに釣りに行き、次の変更を加えました:

  1. 次のコマンドを使用してiptablesにアクセスします:vim / etc / sysconfig / iptables
  2. 以下のステートメントを見つけた場合は、行の先頭に「#」を追加してコメントを付けてください。

    -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

  3. 次のコマンドを使用してiptablesを再起動します:service iptables restart

うん、それは私のために働いた。それが誰かに役立つことを願っています。

于 2014-03-25T14:36:30.813 に答える
3

サーバーを取得したとき、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テーブル名はどこにありますか

于 2011-05-06T18:41:08.767 に答える
0

ユーザーmysqlとして接続していますか?GRANTクエリを次のように実行してみてください。GRANT ALL PRIVILEGES ON *.* TO mysql@x.x.x.x IDENTIFIED BY "somepass";

于 2011-05-06T18:30:34.433 に答える
0

mysqlワークベンチが適切なユーザー名を使用して接続を試みていることを確認しましたか?付与コマンドを実行した後、特権をフラッシュしましたか?

于 2011-05-06T18:32:44.783 に答える
0

私はこのbind-addressことの背後にあるセキュリティの詳細を知りません。仮想ボックスマシンに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の解釈でなければなりません、確かではありません...

于 2013-05-18T21:57:12.673 に答える
-2

行をコメントアウトします。

bind-address = localhost
#bind-address = localhost < this is what it should look like.

MySQLmy.confファイル内。通常は/etc/mysql/my.confにあります。

于 2011-05-06T18:31:03.193 に答える