Ошибка возникает потому, что при выполнении команды `LOAD DATA INFILE` требуется, чтобы пользователь имел привилегию FILE для загрузки данных в базу данных. У вас доступа к этой привилегии, скорее всего, нет.
Чтобы исправить эту ошибку, можно попробовать использовать другой метод загрузки данных, который не требует привилегии FILE. Например, вы можете прочитать файл .csv в Python, обработать его и вставить данные в таблицу с помощью INSERT запросов.
Вот пример кода, который показывает, как это можно сделать:
```python
import csv
# ... (предшествующий код)
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} очищена")
with open(import_file, 'r') as file:
reader = csv.reader(file)
next(reader) # Пропускаем заголовок файла
for row in reader:
insert_query = f"INSERT INTO {table_to_backup} (column1, column2, column3) VALUES ('{row[0]}', '{row[1]}', '{row[2]}')" # Здесь необходимо заменить column1, column2, column3 на названия столбцов из вашей таблицы и соответствующим образом сформировать строку запроса
cursor.execute(insert_query)
connection.commit()
print(f"Данные из файла {import_file} успешно импортированы в таблицу {table_to_backup}")
```
Обратите внимание, что в данном примере я предполагаю, что структура .csv файла и структура таблицы совпадает, и что в таблице есть столбцы column1, column2 и column3. Проверьте и адаптируйте этот код под свою конкретную ситуацию.