Я использую sqlalchemy для подключения к базе данных MySQL и обнаружил странное поведение.
Если я сделаю запрос
LOAD DATA LOCAL INFILE
'C:\\\\Temp\\\\JaydenW\\\\iata_processing\\\\icer\\\\rename\\\\ICER_2017-10-
12T09033
7Z023870.csv
Появляется ошибка:
sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1148, u'The used
command is not allowed with this MySQL versi
on') [SQL: u"LOAD DATA LOCAL INFILE
'C:\\\\Temp\\\\JaydenW\\\\iata_processing\\\\icer\\\\rename\\\\ICER_2017-10-
12T090337Z023870.csv' INTO TABLE genie_etl.iata_icer_etl LINES TERMINATED BY
'\\n'
IGNORE 1 Lines (rtxt);"] (Background on this error at:
http://sqlalche.me/e/2j85)
И я нахожу причину в том, что:
Мне нужно установить параметр как
args = "mysql+pymysql://"+username+":"+password+"@"+hostname+"/"+database+"?
local_infile=1"
Если я использую официальную библиотеку подключений MySQL. Мне не нужно это делать.
myConnection = MySQLdb.connect(host=hostname, user=username, passwd=password, db=database)
Может кто-нибудь помочь мне понять разницу между этими двумя механизмами?