我是使用python连接到mysql数据库的新手,我收到以下错误:
var paramsString = "Name=Fiona&Type=Hippo";
var urlParams = new URLSearchParams(paramsString);
var entries = [...urlParams.entries()]; // Use spread operator here
// Now entries is just an array with all the normal array methods on it.
entries.forEach(pair => console.log(pair[0], pair[1]));
这是我的python文件中的大部分连接脚本:
OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'xxxxxxadmin'@'xx.xx.xx.xx' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)
xx.xxx.216.44 - - [02/Apr/2018 17:27:49] "GET /testconnect HTTP/1.1" 500 -
其他背景:
但是当我尝试通过运行python脚本的服务器上的命令行使用完全相同的凭据连接到同一个mysql数据库时,我能够进入。
不确定如何测试更多以获得更好的错误结果,这将有助于我解决此问题。
更新 所以我能够通过mysql workbench连接到我的数据库,其中包含我在python脚本中的连接字符串和信息。 这是否意味着我的python脚本出错?
答案 0 :(得分:1)
为什么不使用:
的MySQL + pymysql:// xxxxxxxadmin:password@mymaindb.xxxxxxxx.us-east-2.rds.amazonaws.com:3306 / myDBname
而不是
的MySQL + pymysql:// xxxxxxxadmin:密码@ **,** mymaindb.xxxxxxxx.us-east-2.rds.amazonaws.com:3306 / myDBname
不确定为什么你的连接字符串有逗号。可能只是一个错字?
就此而言,我通常在将连接URL传递给create_engine之前构建连接URL,以便将来更容易管理,因为我必须从环境变量中提取实际值:
HOST = "mymaindb.xxxxxxxx.us-east-2.rds.amazonaws.com"
PORT = 3306
USERNAME = "xxxxxxxadmin"
PASSWORD = "password"
DBNAME = "myDBname"
CONNECTION_URL = 'mysql+pymysql://%s:%s@%s:%s/%s' % (
USERNAME,
PASSWORD,
HOST,
PORT,
DBNAME
)