0

Django アプリ (VPS でホストされている) を別のサーバーでホストされているより多くのメモリを備えたデータベースに接続したいので、VPS でメモリを使いすぎて強制終了されるリスクなしに、データベースに何かを実行したり追加したりできます。 . これについて私が見たもの (たとえば、別のホスト上の MySQL サーバーに接続する方法は? ) にはすべて、行の編集my.cnfと変更が含まれbind-addressます。私は a) これを行うための root 権限を持っておらず、b) 他のユーザーの MySQL データベースを潜在的なセキュリティ リスクにさらしたくありません。編集~/.my.cnfして変更しようとしましbind-addressたが、うまくいかないようです。

http://www.rackspace.com/knowledge_center/article/mysql-connect-to-your-database-remotelyも見つけました。これは、そのユーザー権限を作成'user'@'remote-ip-address'してからing することを提案しています。grant私はそれを試しましたが、試してERROR 2003 (HY000): Can't connect to MySQL server on '(the server's address)' (110)みるとmysql -u username -p -h (the server's address).

MySQLのユーザーにアクセスできますrootが、データベースをセットアップするサーバーには他の管理者権限がありません。Django が直接編集せずにこのリモート データベースにアクセスできるように構成する方法はあります/etc/mysql/my.cnfか?

4

2 に答える 2

1

は、そのbind-addressサーバーに接続できる IP を指定しませんが、MySQL がリッスンしているアドレスを指定します。したがって、0.0.0.0 に設定するだけで機能します。そのアドレスのユーザー アカウントを持っていることを確認してください。mysql.userテーブルを確認してください。

root アクセス問題への対処: * mysql を手動でインストールした場合は、root アクセスが可能です。* mysql を手動でインストールしたのではなく、それが VPS ホスティングによって提供されるサービスである場合、バインドアドレスは 0.0.0.0 (または少なくとも 127.0.0.1 ではない) である必要があります。そうでない場合は、かなりひどいので連絡してください。

それが役に立てば幸い。

編集、明確化:

MySQLbind-addressはセキュリティ上の制約ではありません。一部のアドレスにサーバーへの接続を許可する場合は、次のように、そのアドレスを指定してユーザーを作成/付与する必要があります

CREATE USER 'bobdole'@'192.168.10.221';
于 2013-07-01T16:45:03.593 に答える
0

かなりハックですが、これは、 MySQL Proxyがパブリック IP の非特権ポートでリッスンし、すべてのクエリをローカルで実行されている mysqld にプロキシすることで可能になるはずだと思います。

于 2013-07-01T17:24:05.447 に答える