Подключение mysqldump к mysql

Иногда мне нужно скопировать базу данных MySQL (db1) в другую базу данных (db2). Я нашел эту команду краткой и эффективной:

mysqldump --opt db1 | mysql db2

Она работала нормально, но теперь выдает следующую ошибку:

ОШИБКА 1064 (42000) в строке 1586: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильный синтаксис для использования рядом с 'mysqldump: Не удалось выполнить' SHOW TRIGGERS LIKE 'some_table_name' ': MySQL server' в строке 1

Первое, что приходит на ум, это то, что база данных слишком велика (несжатый дамп SQL составляет> 1 Гб, 1090526011 байт на данный момент, если быть точным) для передачи по конвейеру, как это . Когда я делаю mysqldump> file , а затем mysql , он работает нормально, без ошибок. Таблица, указанная в сообщении об ошибке (some_table_name), не большая или особенная.

Вторая идея исходит из впечатления, что сообщение об ошибке может быть усечено и в нем говорится

«... сервер MySQL ушел»

Быстрое исследование этого вопроса говорит о том, что возможно максимальное количество открытых файлов ( для MySQL и / или системы). Итак, я попытался добавить - skip-lock-table в mysqldump и поднять open-files-limit , но безуспешно, та же ошибка.

Очевидное решение - сделать дамп, а затем импортировать (поскольку он работает нормально), но трубопровод кажется мне лучше и более чистым (дайте мне знать, если я ошибаюсь), плюс мне любопытно узнать, что вызывает это проблема. Достиг ли я некоторого предела, влияющего на конвейерную передачу команд?

Я делал это на хост-сервере, используя MySQL 5.1.60 в Linux и на моем компьютере разработчика - MySQL 5.1.58 в Linux.Последнее дает немного другую ошибку:

mysqldump: Ошибка 2013: Потеряно соединение с сервером MySQL во время запроса. при выгрузке таблицы other_table_name в строке: 7197


ОБНОВЛЕНИЕ: Проблема решается путем выполнения отдельного дампа и импорта без трубы. Хотя я чувствую, что это не совсем ответ на мой вопрос, предложения ssmusoke были наиболее точными, что привело к принятому ответу.

9
задан parserr 22 March 2012 в 15:09
поделиться