Я пытаюсь восстановить большие файлы SQL (> 2,5 Гб) в базу данных MySQL в Windows.Отдельная фиксация при импорте очень больших файлов SQL (MySQL)
Я не могу отредактировать эти файлы, чтобы добавить текст в формате SET autocommit=0;
в начало файла (что необходимо для улучшения времени импорта).
Я также не могу использовать source
, так как это выводит на экран (что очень медленно), и выполнение продолжается, даже если в файле есть какие-либо ошибки. Например .:
mysql> CREATE DATABASE IF NOT EXISTS dbname;
mysql> USE dbname;
mysql> SET autocommit=0;
mysql> source file.sql;
mysql> COMMIT;
Можно ли запускать произвольные команды до и после импорта файла SQL, которые применяются только к текущей сессии? Я попробовал оба из следующих действий, и не работают на ОС Windows (в обоих случаях вторая операция игнорируется):
mysql -u username -p -e "SET autocommit=0;" dbname < file.sql
или,
mysql -u username -p < initial_commands.sql < file.sql
Если это возможно, я не хочу, чтобы изменить глобальный параметр autocommit
каждый раз, когда я это делаю, а затем должен помнить, чтобы изменить его обратно (также я не уверен, что это будет работать без окончательного COMMIT;
).
Возможно, есть способ использовать BEGIN ... COMMIT;
вместо отключения автообмена?
Я был бы доволен любыми предложениями людей, которые должны это делать!
Отлично, спасибо. Мне не приходило в голову, что вы можете использовать трубы и эквивалент 'cat' на окнах! – isedwards