我试图从我的主机提供商的服务器上的Python连接到MySQL。我已经创建了我的数据库,我可以通过SSH和PHP连接到它。当我尝试使用Python连接时,我得到一个错误Access denied for user 'user_name'@'::1' (using password: YES)
。
我想这可能是由于Python将localhost解析为IPv6。我可能没有权限访问我的用户在[::1]或127.0.0.1上,只有在localhost上。有可能防止这种行为吗?
如果不是比我可以尝试什么或者我应该问我的主机连接到数据库?
我尝试了pymysql和mysql.connector,结果都一样。
我试着将主机更改为127.0.0.1或[::1]。我的主机特别说明我应该连接本地主机。
我的简短测试脚本:
import os
import sys
import pymysql
pymysql.install_as_MySQLdb()
import mysql.connector
sys.path.insert(0, os.path.dirname(__file__))
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
message = 'It works!\n'
version = 'Python v' + sys.version.split()[0] + '\n'
conn_message = ''
conn = mysql.connector.connect(host='localhost', user='user_name', password='password', database='db_name', port=3306)
# conn = pymysql.connect(host='localhost', user='user_name', passwd='password', db='db_name', port=3306)
if conn:
conn_message = 'MySQL: Yes :)'
else:
conn_message = 'MySQL: No :('
conn.close()
response = '\n'.join([message, version, conn_message])
return [response.encode()]
字符串
1条答案
按热度按时间8qgya5xd1#
您可以使用以下命令更新用户表
字符串
localhost将首先尝试打开一个套接字,然后尝试打开一个tco/ip连接。
但是你的服务器好像不支持tcp/ip连接。