gpt4 book ai didi

python - Cygwin 上的 MySQLdb

转载 作者:行者123 更新时间:2023-11-29 12:56:51 24 4
gpt4 key购买 nike

在 Cygwin 和 Python 上使用 MySQLdb,出现以下错误。我不想在 Cygwin 上安装 MySQLDB。有没有一种方法可以让我使用 Windows 版本的 MySQL 并连接到它。

Python 2.7.5 (default, Oct  2 2013, 22:34:09)
[GCC 4.8.1] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> db = MySQLdb.connect(host="localhost", user="root", passwd="root" )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysql.sock' (9)")

我创建了 my.cnf 文件,如下所示

$ cat /etc/my.cnf
[client]
host = 127.0.0.1
port = 3306
socket = /var/run/mysql/mysql.sock

我还创建了 mysql.sock 文件,如下所示。

$ pwd
/var/run/mysql

$ cat mysql.sock
[client]
port=3306
socket=/var/mysql/mysql.sock

[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

我不知道还需要什么才能运行。有什么想法吗?

最佳答案

套接字应该由 MySQL 服务器在启动期间自动创建,但它并不总是位于 MySQLdb 期望的文件夹中。您可以在 /tmp/mysql.sock 找到它,即 default value --socket 命令行参数。如果没有,您可以使用以下搜索 bash command :

$ find / -name 'mysql.sock' 2>/dev/null

如果MySQLdb默认在/var/lib/mysql/mysql.sock查找套接字,但您发现您的套接字在其他地方,您可以使用连接函数的 unix_socket 参数,例如:

conn = MySQLdb.connect(user=myuser, passwd=mypass, unix_socket='/tmp/mysql.sock')

hostport 参数是可选的,通常当您想通过 unix 套接字连接时,您可以忽略它们,因为您需要默认主机并且您没有使用 TCP 端口。

关于python - Cygwin 上的 MySQLdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23931459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com