У меня есть две машины: local_machine, server_machine. У меня есть сервер mysql на сервере server_machine и sftp на local_machine. Я пытаюсь отправить файл sritest.csv
(UTF-8) с local_machine на server_machine с помощью python. Это содержимое sritest.csv
: 1,2,3
python-mysql cursor.execute failing with access denied error
Я запрос SQL, сохраненные в sritest.sql
и они являются содержимое файла:
LOAD DATA INFILE '{}'
INTO TABLE TESTBED_STAGING.test
COLUMNS TERMINATED BY ','
;
Это питон скрипт у меня сейчас:
import MySQLdb
import os
import string
# Open database connection
db = MySQLdb.connect (host="1.2.3.4",port=3306,user="app_1",\
passwd="passwd",db="TESTBED_STAGING")
cursor=db.cursor()
#Query under testing
sql = open('sritest.sql','r').read()
print sql
l = os.listdir(".")
for file_name in l:
if file_name.endswith('sritest.csv'):
print 'the csv file we are reading is: '+file_name
#try:
cursor = db.cursor()
print 'filename is '+sql.format(file_name)
cursor.execute(sql.format(file_name))
db.commit()
'''
except Exception:
# Rollback in case there is any error
db.rollback()
print 'ERROR - So, rollback :(:('
'''
# disconnect from server
db.close()
В приведенном выше сценарии я прокомментировал try
, except
, чтобы я мог видеть ошибку, где она ломается. В настоящее время код разбивается на cursor.execute(sql.format(file_name))
линии с этой ошибкой:
OperationalError: (1045, "Access denied for user 'app_1'@'%' (using password: YES)")
Я играл вокруг, но не в состоянии исправить. Любые предложения/идеи?
Пользователь 'app_1' уже имеет все привилегии на сервере MySQL (я имею в виду, что я уже выполнил указанную выше команду). –