web-dev-qa-db-ja.com

PythonでMySQLdbを使用するときにオプションskip-name-resolveを使用する方法

仮想マシンからドメイン内のデータベースに接続しようとしています。 XPでは機能しますが、Win7では機能せず、「OperationalError:(1042、 "Ca n't get hostname for your address")」で終了します。

さて、ファイアウォールなどを無効にしてみましたが、とにかく問題ありません。すべてを遅くするだけのDNS解決は必要ありません。したがって、「skip-name-resolve」オプションを使用したいのですが、MySQLdb for Pythonを使用するときにmy.iniまたはmy.cnfがないので、このオプションをどのように使用できますか?

あなたの助けをありがとう-アレックス

12
CreeTar

/etc/mysql/my.cnfファイルに次の行(skip-name-resolve)を追加します

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
skip-name-resolve

Mysqlサーバーを再起動します

37
Ranzit

これは、サーバー上のMySQL構成ファイルで設定する必要があるオプションです。 MySQLdbなどのクライアントAPIでは設定できません。これは、潜在的なセキュリティの影響によるものです。

つまり、特定のホスト名からのアクセスを拒否したい場合があります。 skip-name-resolve有効、これは機能しません。 (確かに、ホスト名によるアクセス制御はおそらくとにかく最良のアイデアではありません。)

1
Michael Mior