Привет! Пишу скрипт на python. Суть в том, чтобы при его запуске сначала создавался бэкап одной из таблиц базы данных, после того как бэкап сделан эта таблица должна быть очищена, а после этого должен произойти импорт данных в эту таблицу из файла *.cvs. В итоге бэкап делается успешно, очистка тоже успешно проходит, а вот импорт выдает такую ошибку: "Ошибка при подключении к базе данных: 1045 (28000): Access denied for user '[логин]'@'localhost' (using password: YES)"
Используются библиотеки:
import subprocess
import mysql.connector
from datetime import datetime
import os
Вот код отвечающий бэкап, очистку, импорт:
if connection.is_connected():
print("Успешное подключение к базе данных")
cursor = connection.cursor()
subprocess.run(['mysqldump', '-h', host, '-u', user, '-p' + password, '--no-create-info', '--default-character-set=utf8', database, table_to_backup], stdout=open(backup_file, 'w')) # ПРОХОДИТ УСПЕШНО
print(f"Бэкап таблицы {table_to_backup} создан успешно и сохранен в файл {backup_file}")
delete_query = f"DELETE FROM {table_to_backup}"
cursor.execute(delete_query) # ПРОХОДИТ УСПЕШНО
connection.commit()
print(f"Таблица {table_to_backup} очищена")
load_data_query = f"LOAD DATA INFILE '{import_file}' INTO TABLE {table_to_backup} FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 ROWS"
cursor.execute(load_data_query) # ОШИБКА
connection.commit()
print(f"Данные из файла {import_file} успешно импортированы в таблицу {table_to_backup}")
Где ошибка сидит?