#python #mysql
#python #mysql
Вопрос:
Во-первых, я новичок в Stack Overflow, поэтому ценю любые предложения о том, как улучшить мой вопрос, задаваемый в дополнение к любым потенциальным решениям.
Я использую MySQL и Python (с Pycharm IDE), и мне нужно загрузить данные из csv-файла в таблицу в базе данных, которую я уже создал с помощью MySQL Workbench (я не использую инструмент импорта Workbench, потому что он слишком медленный, и мне все равно нужно будет делать это из Pycharm в будущем).
Я могу успешно подключиться к своей базе данных из PyCharm и просматривать таблицы и т. Д. Затем я использую следующее, чтобы попытаться загрузить данные из моего CSV-файла —
mycursor = db.cursor()
query = "LOAD DATA LOCAL INFILE 'file path' INTO TABLE scores FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (ID, Date, Score)"
mycursor.execute(query)
Я получил сообщение об ошибке, когда сделал это, и увидел из другого вопроса о переполнении стека, что мне нужно включить параметр ‘local_infile’, поэтому я это сделал (я вижу, что он включен).
Тем не менее, я все еще получаю сообщение об ошибке ниже, когда пытаюсь импортировать свои данные, и из чтения при переполнении хранилища я полагаю, что это связано с тем, что мне также нужно включить ‘local_infile’ на стороне сервера, но я не уверен, как это сделать?
Ошибка, которую я сейчас получаю при попытке загрузить свои данные, выглядит следующим образом —
mysql.connector.errors.Ошибка программирования:
3948 (42000): загрузка локальных данных отключена; это должно быть включено как на стороне клиента, так и на стороне сервера
Комментарии:
1. Вы добавили
allow_local_infile=True
к вызову connect? Или вы включили это в настройках сервера?2. Вы должны установить
local_infile
глобальную переменную (с помощьюSET GLOBAL
или в сервере my.ini ) для включенияLOAD DATA LOCAL INFILE
на стороне сервера…3. … и вы должны указать
--local-infile
and--load-data-local-dir
в командной строке клиента или в соответствии с параметрами в разделе [mysql] моего. ini , используемый вашим клиентом, или соответствующим образом настройте программное обеспечение для подключения.4. для local_infile установлено значение ON . Сейчас я пытаюсь выполнить загрузку из клиента командной строки MySQL и получаю сообщение об ошибке «ОШИБКА 2068 (HY000): ЗАГРУЗКА ДАННЫХ Запрос ЛОКАЛЬНОГО файла INFILE отклонен из-за ограничений на доступ». Я нашел файл my.ini и добавил local-infile = 1 под битом [mysqld], а также попытался загрузить файлы из скрытой папки «Uploads», но все равно получаю эту ошибку