我正在尝试通过SSH将数据上传到PythonAnywhere服务器上的MySQL数据库(我有一个付费帐户(。我有三个数据库(alter$default
、alter$ip_data
和alter$visitor_data
(来自PythonAnywhere接口。
使用在线说明(此处(,我可以使用MySQL Workbench通过SSH成功连接到服务器,并在模式窗口中查看三个数据库(单击此处查看模式列表的图像(。
我可以成功地将表添加到我选择的数据库中,但是当我尝试添加数据时,我得到Error Code: 1045. Access denied for user 'alter'@'%' (using password: YES)
.
我尝试过故障排除:
对于SELECT user();
,它返回alter@10.0.0.89
对于SELECT current_user();
,它返回alter@%
对于SHOW GRANTS;
,它返回:
GRANT USAGE ON *.* TO 'alter'@'%' IDENTIFIED BY PASSWORD <secret> WITH MAX_USER_CONNECTIONS 6
GRANT ALL PRIVILEGES ON 'alter$default' .* TO 'alter'@'%'
GRANT ALL PRIVILEGES ON 'alter$visitor_data' .* TO 'alter'@'%'
GRANT ALL PRIVILEGES ON 'alter$ip_data' .* TO 'alter'@'%'
看来我已授予必要的权限并正确连接到MySQL服务器 - 那么为什么它不允许我写入数据库呢?.csv文件是否在错误的位置?我不能使用"root"用户,因为这肯定是PythonAnywhere管理员帐户?
额外详情: 用于写入数据库的 SQL 查询(返回"拒绝访问"(为:
LOAD DATA INFILE 'VALUES.CSV'
INTO TABLE ip_data_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY 'rn'
IGNORE 0 LINES;
是导致权限被拒绝的infile。您需要使用 --local-infile=1 标志启动 mysql 客户端。