Загрузка больших файлов в mysql

Открываем консоль.
Если находимся в Windows переводим консоль в режим работы с кодировкой utf8 по умолчанию
chcp 65001

Подключаемся к базе данных
Для windows прописываем пути к исполняемым файлам
$PATH_TO_MYSQL\mysql.exe -h 192.168.1.1 --port=3306 -u root -p

Если подключаемся локально
$PATH_TO_MYSQL\mysql.exe -u root -p

Увеличиваем размер пакета для передачи данных
set global net_buffer_length=1000000;


Увеличиваем максимальный размер пакета для передачи данных

set global max_allowed_packet=1000000000;

Отключаем проверку внешних ключей

  1. SET foreign_key_checks = 0;
  2. SET UNIQUE_CHECKS = 0;
  3. SET AUTOCOMMIT = 0;

Производим импорт файлов
source dump.sql

Включаем поддержку внешних ключей после успешного импорта данных

  1. SET foreign_key_checks = 1;
  2. SET UNIQUE_CHECKS = 1;
  3. SET AUTOCOMMIT = 1;

BASH файл для автоматизации данного процесса

  1. #!/bin/sh
  2.  
  3. imeron=`date`
  4.  
  5. echo "Start import:$imeron"
  6. echo "Recorded start date: OK"
  7.  
  8. echo "Import started: OK"
  9. dumpfile="/home/bob/bobiras.sql"
  10.  
  11. ddl="set names utf8; "
  12. ddl="$ddl set global net_buffer_length=1000000;"
  13. ddl="$ddl set global max_allowed_packet=1000000000; "
  14. ddl="$ddl SET foreign_key_checks = 0; "
  15. ddl="$ddl SET UNIQUE_CHECKS = 0; "
  16. ddl="$ddl SET AUTOCOMMIT = 0; "
  17. ddl="$ddl source $dumpfile; "
  18. ddl="$ddl SET foreign_key_checks = 1; "
  19. ddl="$ddl SET UNIQUE_CHECKS = 1; "
  20. ddl="$ddl SET AUTOCOMMIT = 1; "
  21. ddl="$ddl COMMIT ; "
  22.  
  23. echo "Import started: OK"
  24.  
  25. time mysql -h 127.0.0.1 -u root -proot -e "$ddl"
  26.  
  27. imeron=`date`
  28. echo "End import:$imeron"
Russian
Категория: 
The code has been tested and works
Мультитег: