我想把python和MySQL连接起来。在我的本地计算机上,我是这样得到的:
connection = pymysql.connect(host='127.0.0.1',
user='test',
password='password',
database='database_name')
这对我很有效。但是当我尝试在VPS上做这件事时,我得到了这个错误:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 920, in connect
**kwargs)
File "/usr/lib/python3.6/socket.py", line 724, in create_connection
raise err
File "/usr/lib/python3.6/socket.py", line 713, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "save_payments.py", line 13, in <module>
database='payment_reg')
File "/usr/lib/python3/dist-packages/pymysql/__init__.py", line 90, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 699, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 967, in connect
raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection refused)")
怎么了?VPS管理员告诉我mysql中的unix套接字,但我不知道如何实现它。
发布于 2021-03-11 00:06:01
当使用错误的端口时,
curl -I localhost:33006
一个im get错误"curl:(7)无法连接到本地主机端口33006:连接拒绝“
你可能需要换端口吗?
conn = pymysql.connect(
host='localhost',
#charset='utf8mb4'
port=3306,
user='root',
passwd='',
db='Work'
)
有时,使用某个地址启动应用程序可能会产生不同的结果
if __name__ == '__main__':
app.run_server(host='127.0.0.1', port='8050', debug=True)
if __name__ == '__main__':
app.run_server(host='0.0.0.0', port='8050', debug=True)
可能还有更多的原因,比如打开防火墙。您看到sql服务器上的日志了吗?这样,就可以找到sql server没有响应的任何原因。
发布于 2021-03-12 02:32:18
问题出在mysql设置中。它只监听套接字连接。我在my.cnf
中添加了bind-address = 127.0.0.1
,并注释了其中是word套接字的所有行)
https://stackoverflow.com/questions/66568236
复制相似问题