使用MySQLdb for Python时如何使用skip-name-resolve选项?

时间:2011-07-12 17:00:38

标签: python mysql mysql-python resolve

我尝试从虚拟机连接到域中的数据库。 它适用于XP,但不知何故不适用于Win7并退出: “OperationalError:(1042,”无法获取您的地址的主机名“)”

现在我尝试禁用防火墙和东西,但这无关紧要。 我不需要DNS解析,这只会减慢一切。 所以我想使用“skip-name-resolve”选项,但是没有my.ini 或者my.cnf在使用MySQLdb for Python时,我怎么还能使用这个选项呢?

感谢您的帮助 -Alex

2 个答案:

答案 0 :(得分:35)

在/etc/mysql/my.cnf文件中添加以下行(skip-name-resolve)

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

然后重启mysql服务器

答案 1 :(得分:1)

这是一个需要在服务器上的MySQL配置文件中设置的选项。它不能由MySQLdb等客户端API设置。这是因为潜在的安全隐患。

也就是说,我可能想要拒绝来自特定主机名的访问。启用skip-name-resolve后,这将无效。 (无可否认,通过主机名进行访问控制可能不是最好的主意。)