Чем открыть дамп sql
Пропускать ошибки
Данный способ восстановления лучше не применять, так как он может приводить к потере данных. Он может помочь, если нужно срочно восставновить дамп, а он выкидывает различные ошибки, с которыми не удалось разобраться быстро.
Суть сводится к простому добавлению ключа --force или -f:
mysql -v -u root -p -f db < /tmp/dump.sql
Row size too large
Ошибка выскакивает после небольшого времени работы восстановления. Более полный текст выглядит, примерно, так:
ERROR 1118 (42000) at line 608: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
Причина: ошибка встречается, если в нашей базе есть большое количество текстовых полей и мы используем таблицы типа INNODB. По умолчанию, они имеют ограничение на объем данных, которые можно хранить в одной строке таблицы.
Решение:
Мы же сделаем все по-быстрому. Открываем конфигурационный файл СУБД — его местоположение зависит от версии и реализации, например:
* это пример расположения для базы MariaDB 10. Более точное расположение можно найти в файле /etc/my.cnf.
Приводим опцию innodb_strict_mode к виду:
[mysqld]
.
innodb_strict_mode = 0
systemctl restart mariadb
* в данном примере мы перезапустили сервис для mariadb.
Я использую sql-сервер 2012, где мне нужно запустить script инструкции insert. Но размер файла составляет 2,7 ГБ. когда я собираюсь открыть файл в редакторе sql, он показывает мне ошибку SystemOutOfMemory. Блокнот также не может открыть какое-либо предложение, как его открыть.
Редактор SQL может открыть файл до 500 мб без очень хороших спецификаций, похоже, что что-то не так, если вы хотите вставить данные из одной базы данных в другую, попробуйте использовать мастер импорта/экспорта, пакет SSIS или утилита командной строки, создающая таблицу script, а затем вставка не является хорошим подходом.
Попробуйте открыть файл в браузере, а затем скопируйте необходимые строки в редакторе. Это сработало для меня.
У меня была такая же проблема сегодня с мега-гигабайтными файлами sql, поэтому я написал утилиту командной строки, чтобы разделить их на файлы меньшего размера для обработки.
Там же есть исходный код (Visual Studio 2015)
Во-первых, вы делаете что-то не так. Опишите, как и почему вы получили файл 2,7 ГБ. Скорее всего, есть альтернативное решение вашей проблемы.
Вы можете выполнить файл такого размера с помощью утилиты командной строки sqlcmd.exe. MSDN sqlcmd Утилита
Но это будет очень очень очень медленно, так как вставка будет по одной строке
Также я не вижу причин открывать такой большой файл в редакторе. Но если хотите – я открыл файл> 3Gb во внутреннем редакторе файлового менеджера FarManager3.0 x64 (мой конфиг Win7 x64, ram 8Gb, i7-3770). И это тоже было довольно медленно
Возможно, нам следует поискать другие варианты передачи данных:
Я столкнулся с подобной ситуацией, когда мне пришлось редактировать файл SQL объемом 1,5 ГБ.
EmEditor сделал свою работу.
Перепробовал много редакторов, ничего не работало, все зависало или не отвечало (на окнах).
На один раз или на короткое время вы можете использовать его в качестве пробного периода. Для более длительного/постоянного использования придется покупать премиум.
Ниже ссылка на скачивание тоже самое.
У меня есть аналогичная проблема с 6 ГБ .sql дампом, что колледж прошел меня. Все еще интересно, как он добрался до этого.
Мне удалось открыть файл через терминал в Linux с помощью vi/vim.
Почему вы не пытаетесь создать виртуальную машину с centos или каким-либо другим вкусом, передайте файл там (через ssh и используя filezilla) и откройте его там? Установите версию сервера без GUI.
Бьюсь об заклад, вы сможете открыть его там. В противном случае раскол был бы чем-то нужным.
Редактор 010 может обрабатывать файлы любого размера. Я просто использовал его для редактирования 3GB файла, который Chrome, TextPad и все остальное разбилось.
Я открыл файл 5.14G sql в редакторе IntelliJ IDEA. Загрузка даже не занимает 30 секунд.
Большие файлы дампа mysql могут быть открыты приложением gVim.
Почему бы просто не импортировать файл в SQL Server и не просмотреть его в Enterprise Manager? Вы можете напрямую импортировать его или использовать PowerShell, но последний, вероятно, будет работать в одночасье (это легче для небольших файлов, особенно для многих из них). Как только он появится, вы сможете с легкостью делать все, что захотите, и размер файла не будет проблемой.
Вы всегда можете использовать утилиту командной строки.
Откройте cmd и введите:
Я только что успешно запустил файл 7 Гб с 8 млн вставок.
Для кроссплатформенных приложений я считаю, что VSCode на самом деле лучший здесь. Если он заметит, что это большой файл, он автоматически отключит поиск синтаксиса и все приятные функции, но уйдет, по крайней мере, с базовым поиском и заменой и т.д. Я использую это для файлов размером 1-3 ГБ регулярно для WordPress, потому что иногда постоянные ссылки не обновляются при смене доменных имен для сайтов разработчиков и т.д. и т.д.
Если у вас установлена ОС Linux или Git Bash в Windows, то у вас будет доступ к vim, который я рекомендую для всего 4GB+. Мне пришлось изменить строки вручную в файле MySQL 6GB+, и он отлично работает. Вы подумаете, что это не работает, потому что чтение с диска в ОЗУ может занять около минуты, но это сработает. Вы захотите оценить, сколько раз вы сэкономите, потому что он будет записывать целые 6 ГБ обратно на диск, а навигация также потребует использования поиска, номеров строк и т.д., Но это работает.
У меня та же проблема, но я решил ее.
У меня был 5 ГБ .sql файл. В этом файле мне пришлось редактировать из-за синтаксической ошибки. Я пытался с несколькими редакторами, но это не сработало.
Затем, после того как я попробовал с Visual Studio Code Editor. И это работает.
Как сделать резервную копию удалённой базы данных MySQL?
Следующая команда сделает на локальный сервер резервную копию с удалённого сервера 185.117.153.79 базы данных gallery.
Похожим образом вы можете восстановить отдельные таблицы, структуру и информацию базы данных.
Импорт базы данных
Для импорта существующего файла базы данных в MySQL or MariaDB, вам нужно создать новую базу данных, в которую будет импортировано содержимое дамп файла.
Начните со входа в базу данных как root или другой пользователь с достаточными привилегиями для создания новой базы данных.
Это даст вам приглашение оболочке MySQL. Далее создайте новую базу данных с названием new_database.
О создании будет выведено подтверждение.
Теперь выйдете из оболочки MySQL нажав CTRL+D. В обычной командной строке вы можете импортировать файл следующей командой:
- username – это имя пользователя, с которым вы можете войти в базу данных
- newdatabase – имя только что созданной базы данных
- data-dump.sql – файл дампа с данными для импорта, размещённый в текущей директории
и затем сделайте SQL запрос:
или похожей командой для просмотра данных.
Как импортировать файл SQL с помощью командной строки в MySQL?
у меня есть .sql файл с экспортом из phpMyAdmin . Я хочу импортировать его на другой сервер с помощью командной строки.
у меня есть Windows Server 2008 установка R2. Я поставил на диск C, и я попробовал эту команду
это не работает, я получаю ошибки синтаксиса.
- как я могу импортировать этот файл без проблем?
- нужно ли мне создать сначала база данных?
совместное использование mysqldump для создания резервной копии всей базы данных:
вы можете загрузить файл дампа обратно на сервер следующим образом:
UNIX
то же самое в Windows запрос:
PowerShell
командная строка MySQL
Что касается времени, необходимого для импорта огромных файлов: самое главное, это занимает больше времени, потому что по умолчанию MySQL является autocommit = true . Вы должны установить это перед импортом файла, а затем проверить, как импорт работает как драгоценный камень.
вам просто нужно сделать следующее:
мы можем использовать эту команду для импорта SQL из командной строки:
например, если имя пользователя root и пароль password . И у вас есть имя базы данных как bank и SQL-файл bank.sql . Затем просто сделайте так:
помните, где находится ваш файл SQL. Если ваш SQL-файл находится в Desktop папка / каталог затем перейдите в каталог рабочего стола и введите следующую команду:
и если вы находитесь в Project каталог и ваш SQL файл находится в . Если вы хотите получить к нему доступ из Project каталог, то вы можете сделать так:
- Откройте командную строку MySQL
- введите путь к каталогу mysql bin и нажмите введите
- вставьте SQL-файл в bin папка сервера mysql.
- создать базу данных в MySQL.
- используйте эту конкретную базу данных, где вы хотите импортировать файл SQL.
- тип source databasefilename.sql и введите
- ваша загрузка файла SQL успешно.
если у вас уже есть база данных, используйте следующее для импорта dump или sql file
если вам не нужно создавать соответствующую базу данных(пустую) в MySQL, для этого сначала войдите на
решение, которое сработало для меня ниже:
перейдите в каталог, где у вас есть исполняемый файл MySQL. -u имя пользователя и -p запрос пароля:
чтобы импортировать одну базу данных, используйте следующую команду.
импортировать несколько дампов базы данных, используйте следующую команду.
для сброса базы данных в файл SQL используйте следующую команду
чтобы импортировать файл SQL в базу данных (убедитесь, что вы находитесь в том же каталоге, что и файл SQL, или укажите полный путь к файлу)
Я думаю, что стоит упомянуть, что вы также можете загрузить a сжатый (сжатом) С zcat как показано ниже:
для импорта нескольких файлов SQL в одно время, используйте это:
для простого импорта:
на WAMP:
для XAMPP:
вам не нужно указывать имя базы данных в командной строке, если .sql файл, содержащий CREATE DATABASE IF NOT EXISTS db_name и USE db_name заявления.
просто убедитесь, что вы подключаетесь к пользователю, который имеет разрешения на создание базы данных, если база данных упоминается в разделе .sql-файл не существует.
импорт базы данных
перейти к диска:
он будет просить для инвалидов. Введите его:
выберите базу данных
Укажите имя файла
Я думал, что это может быть полезно для тех, кто использует Mac OS X:
заменить xampp С mamp или другие веб-серверы.
следующая команда работает для меня из командной строки (cmd) на Windows 7 на WAMP.
перейдите в каталог, где у вас есть MySQL.
кроме того, чтобы сбросить все базы данных, используйте -all-databases опция, и имя базы данных больше не нужно указывать.
или вы можете использовать некоторые клиенты GUI, такие как SQLyog, чтобы сделать это.
иногда порт определяется так же, как и сервер IP-адрес этой базы данных также имеет значение.
для резервного копирования создайте файл BAT и запустите этот файл BAT с помощью Планировщик Задач. Это займет резервную копию базы данных; просто скопируйте следующую строку и вставьте в Блокнот а затем сохранить .bat-файл и запустите его в своей системе.
Я постоянно сталкивался с проблемой, когда база данных не была создана.
я исправил это такой
Я создал нового пользователя со всеми привилегиями и паролем. Это работает.
— ppassword без пробела.
Я использую Windows 10 с Powershell 5, и я обнаружил, что почти все "unix-подобные" решения не работают для меня.
Я в конечном итоге с помощью этой команды.
и он отлично работает, надеюсь, что это помогает.
спасибо @Франческо Казула ‘ s ответ кстати.
- база данных должна существовать в первую очередь
- нет пробела между -p и пароль
mysql-u database_user-p —default-character-set=utf8 [db_name]
Surley это работает и для других наборов символов, как показать правильную нотацию можно увидеть здесь:
в одном комментарии также упоминается, что если база данных никогда не существует, сначала должна быть создана пустая база данных. В некоторых случаях это может быть правильно, но зависит от файла экспорта. Если экспортированный файл уже содержит команду создайте базу данных, то база данных никогда не должна быть создана в отдельном шаге, который даже может вызвать ошибку при импорте. Поэтому при импорте желательно сначала посмотреть в файл, чтобы узнать, какие команды включены там, при экспорте желательно отметить настройки, особенно если файл очень большой и трудно читать в Редакторе.
есть еще больше параметров для команды, которые перечислены и объяснены здесь:
Если вы используете другую версию базы данных, рассмотрите возможность поиска соответствующей версии руководства. Указанные ссылки относятся к MySQL версии 5.7.
Как сделать бэкап нескольких таблиц?
Если вы хотите сделать резервную копию нескольких или определённых таблиц из базы данных, то отделите каждую таблицу пробелом.
Как сделать резервную копию всех баз данных?
Если вы хотите сделать резервную копию всех баз данных, тогда используйте следующую команду с опцией —all-database. Следующая команда сделает резервную копию всех баз данных, их структуры и информации, в файл под названием all-databases.sql.
Как сделать резервную копию одной таблицы из базы данных?
Следующей командой вы можете сделать резервную копию одной таблицы или определённых таблиц из вашей базы данных. Например, следующая команда только сделает бэкап таблицы wp_posts из базы данных wordpress.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками файлы sql или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.5.12.42104
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
В данном примере показано восстановление из заранее сделанного dump-файла (с помощью mysqldump). Если нужна инструкция по созданию резервной копии, читайте Как сделать дамп базы MySQL.
Как сделать резервную копию только информации из базы данных MySQL?
Для создания бэкапа только информации из базы данных без структуры, используйте с командой опцию —no-create-info. Эта команда возьмёт данные из базы данных rsyslog и скопирует их в файл rsyslog_data.sql.
Как сделать резервную копию только структуры базы данных MySQL?
Если вы хотите сделать резервную копию структуры базы данных без информации, тогда используйте в команде опцию —no-data. Следующая команда экспортирует структуру базы данных rsyslog в файл rsyslog_structure.sql.
С помощью phpMyAdmin
Выбираем базу, которую нужно восстановить. Переходим на вкладку Импорт - кликаем по кнопке Выберите файл:
Выбираем файл с резервной копией.
Нажимаем по OK и ждем восстановления данных.
Подготовка базы
Подключаемся к командной оболочке mysql:
* данной командой мы подключимся к СУБД под пользователем root. Опция -p потребует ввода пароля.
Для восстановления базы сначала необходимо ее создать:
> CREATE DATABASE db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
При необходимости, также создаем пользователя, который будет иметь доступ к базе:
> GRANT ALL PRIVILEGES ON db.* TO dbuser@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
Подробнее про создание баз читайте на странице Создание и удаление баз в MySQL/MariaDB.
Возможные ошибки
В процессе восстановления мы можем столкнуться с разными ошибками. Рассмотрим их примеры.
Как сделать резервную копию нескольких баз данных MySQL?
Если вы хотите сделать резервную копию нескольких баз данных, запустите следующую команду. Следующий пример сделает резервную копию структуры и данных баз данных rsyslog, syslog в один файл под названием rsyslog_syslog.sql.
Восстановление в другую базу
По умолчанию, восстановление происходит в ту базу, для которой указан переход в самом дампе с помощью инструкции:
* где database_name — имя конкретной базы.
Для смены базы просто редактируем это значение на любое другое, например, строка:
. приведет к тому, что восстановление будет выполняться в базу new_database_name.
Если файл дампа большой, открывать его на редактирование может оказаться непростой задачей. Поменять название базы можно с помощью sed:
sed 's/USE `database_name`;/USE `new_database_name`;/' -i /tmp/dump.sql
* в данном примере мы заменим имя базы database_name на new_database_name в файле /tmp/dump.sql.
Экспорт базы данных
Для экспорта баз данных в текстовый файл SQL используется консольная утилита mysqldump. Эти файлы файлы легко передавать и перемещать. Вам нужно имя самой базы данных, а также имя пользователя и пароль аккаунта, у которого имеются полные привилегии как минимум на чтение базы данных.
Экспортируйте вашу базу данных используя следующую команду
- username – это имя пользователя, с которым вы можете войти в базу данных
- database_name – это имя базы данных для экспорта
- data-dump.sql – это файл в текущей директории, в который будет сохранён вывод
Программа не выводит какие-либо данные в консоль, но вы можете изучить содержимое файла filename.sql, чтобы проверить, является ли этот файл действительно дампом SQL используя:
Начало файла должно быть схожим с таким, где упоминается, что это дамп MySQL:
Если во время процесса экспорта произошли какие-либо ошибки, они будут выведены на экран.
Как импортировать и экспортировать базы данных в MySQL или MariaDB
Важно уметь импортировать и экспортировать ваши базы данных. Вы можете использовать дампы в качестве резервных копий, на случай аварий или для перенесения на другой сервер.
Кстати, дамп – это от английского dump, что буквально переводится как «сбрасывать», «сваливать» и может означать результат этого действия – куча. Дамп в компьютерной терминологии означает данные/база данных целиком, которую «сбросили», например, на диск.
Работа с базами данных MySQL и MariaDB проста. Эта инструкция покажет вам, как экспортировать базы данных, а также как импортировать их из файла дампа в MySQL и MariaDB.
Заключение
Теперь вы знаете, как создавать дампы баз данных MySQL, а также как снова их импортировать. У mysqldump имеется множество дополнительных настроек, которые могут использоваться для изменения, как дамп должен быть создан, дополнительно о mysqldump вы можете узнать из справки программы или из её документации.
Необходимые условия
Для импорта и/или экспорта базы данных MySQL или MariaDB вам понадобится:
- Доступ к серверу Linux, на котором запущена MySQL или MariaDB
- Access to the Linux server running MySQL or MariaDB
- Имя базы данных и пользовательские учётные данные (логин и пароль) для неё
Из файла через командную строку
Если при создании дампа использовалась gzip, сначала распаковываем архив:
Для удобства, создадим переменную с именем базы:
Команда выполняется из UNIX-shell:
* где root — учетная запись, от которой идет подключение к серверу баз данных; DNBAME — имя базы, которую необходимо восстановить (переменная, которую мы задали ранее); /tmp/recovery.sql — файл дампа, из которого восстанавливаем базу.
* можно также добавить опцию -v — она позволит показать на экране ход процесса, однако, она очень сильно снижает скорость восстановления — не рекомендуется ее использовать для больших баз.
На самом деле, если внутри дампа есть указание на переход к конкретной таблице (USE table), то восстановление будет выполняться в нее, а не ту таблицу, которую мы указали в переменной DBNAME. Как это проверить и изменить сказано ниже.
Если у нас много файлов, которые нужно импортировать, можно выполнить следующую команду:
cat /tmp/*.sql | mysql -u root -p db
* в данном случае мы прочитаем из каталога /tmp все файлы, заканчивающиеся на .sql и импортируем их содержимое в базу.
Восстановление в другую таблицу
Команда mysql не предусматривает возможности восстановить дамп только для одной таблицы. Есть два варианта это обыграть.
1. Восстановление с применением временной базы.
Чтобы выполнить развертывание конкретной таблицы, нам нужно сначала сделать восстановление в отдельную базу, после чего скопировать таблицу в нужную базу командой на подобие этой (должна выполняться в среде SQL):
> INSERT INTO database_name.table_name SELECT * FROM new_database_name.table_name;
* в данном примере выполняется копирование содержимого таблицы table_name из базы данных new_database_name в базу database_name.
2. Резервирование только одной таблицы.
Если восстановление не является экстренным, и мы имеем доступ к источнику данных, можно выполнить резервирование только нужной нам таблицы. Это делается командой на подобие:
mysqldump -uroot -p database_name table_name > /tmp/dump_base_table.sql
После чего уже выполняем восстановление из дампа.
Импорт файла SQL в mysql
у меня есть база данных под названием nitm . Я не создавал там никаких таблиц. Но у меня есть файл SQL, который содержит все необходимые данные для базы данных. Файл nitm.sql который находится в C: drive . Этот файл имеет размер около 103 МБ. Я использую сервер wamp.
я использовал следующий синтаксис в консоли MySQL для импорта файл:
но это не сработало.
из консоли mysql:
mysql> use DATABASE_NAME;
mysql> source path/to/file.sql;
убедитесь, что перед path нет косой черты, если вы ссылаетесь на относительный путь. мне потребовалось время, чтобы понять это! лол
наконец, я решил проблему. Я поставил `nitm.sql ‘файл в’ bin ‘файл папки" mysql " и используется следующий синтаксис.
и это сработало.
если вы используете wamp, вы можете попробовать это. Просто введите use your_Database_name первый.
нажмите значок сервера wamp, затем найдите MYSQL > MSQL Console затем запустить его.
если у вас нет пароля, просто нажмите Enter и введите :
если у вас есть пароль, вы будете promt, чтобы ввести пароль. Сначала введите пароль, затем введите:
location_of_your_file должен выглядеть как C:\mydb.sql
так что одобряю is mysql>источник C:\mydb — . в SQL;
этот вид импорта дампа sql очень полезен для большого файла SQL.
Я скопировал мои файлы mydb.sq в каталоге C: .Это должна быть заглавная C: для запуска
в windows, если вышеуказанное предложение дает вам ошибку (файл не найден или неизвестный db), вы можете удвоить косые черты:
в консоли mysql:
Ok Итак, я использую Linux, но я думаю, что это справедливо и для Windows. Вы можете сделать это либо прямо из командной строки
или из приглашения mysql вы можете использовать:
но оба эти подхода имеют свои преимущества в результатах, которые они отображают. При первом подходе скрипт завершает работу, как только обнаруживает ошибку. И лучше всего то, что он сообщает вам точный номер строки в исходном файле, где произошла ошибка. Однако он отображает только ошибки. Если он не обнаружил никаких ошибок, скрипты ничего не отображают. Что может немного нервировать. Потому что чаще всего вы запускаете сценарий с целой кучей команд.
Я, например, предпочитаю подход непосредственно из командной строки.
Если вы используете xampp
вы почти там использовать
вы также можете получить доступ к справке по
для localhost на XAMPP. Откройте окно cmd и введите
внимание! Отсутствие semi-двоеточия после-p Введите пароль и введите
, чтобы выбрать нужную вам базу данных.
проверьте, есть ли ваш стол
импорт из файла sql
Я положил свой файл на C:\xampp\mysql\bin расположение, чтобы не смешивать с местоположениями sql-файла.
Чем импортировать БД размером в несколько гигабайт? Видел скрипты типо Sypex Dumper, но они не годятся т.к. хостинг просто не разрешает загружать файлы такого объема. Да и сам Sypex Dumper у меня с ходу не запустился, а чего мне уж точно не хочется, так копаться в нем и искать проблему
Из решений вижу только софтину которая тихо и мирно по удаленному подключению добавит все строки
Возможно можно ещё как-то, буду рад предложениям
- Вопрос задан более трёх лет назад
- 552 просмотра
Проверенней программы, чем работа с базой через консоль - просто нет. Рано или поздно все подводят, а ей всё равно, будь база хоть 50гб.
Разбить/слить и заодно очень серьёзно сжать большой файл можно там же в консоли архиватором.
А хостера, который ограничивает вас в таких простых вещах, думаю, стоит сменить)
Если на рабочей машине заюзать empty (оф), можно из mysql с одного хостера перекидывать сразу в mysql другого без промежуточных файлов.
Друг подсказал, есть такая прога Навикат
Она поможет. После установки в папке с программой есть php-файл, его закачиваешь на хостинг. Прога через этот файл будет коннектиться. Есть режим синхронизации двух баз mysql, т.е. сама перестроит структуру БД если что изменилось, найдет новые строки, измененные, удаленные. Короче, что доктор прописал. Главное - не юзай кряк что в папке и не забудь заплатить автору по истечению триального периода.
Блин, даже не знаю, вроде должна в корне папки программы в Program files лежать. Компа с виндой под рукой нет, позавчера удалил последнюю виртуалку. Можно попробовать поиском пошукать. Щас попробую в интернете найти хелп.
ВэйДлин: ну тогда можно попробовать импортировать в БД на локальном компьютере и перенести через синхронизацию БД
Navicat Очень хорошая программа для работы с БД и дампа/синхронизации небольших баз.
А вот пару гигабайт у меня ни разу не потянула. Вываливается с ошибками разной степени тяжести и приходится всё заново начинать. Хотя в v11+ такое заметно реже чем на 8 и 9 версиях.
Sypex Dumper, phpmyadmin и прочие php-скрипты - не смотря на их описание несколько гигов не тянут. Дампят часть базы.
HeidiSQL и прочие раскрученные Open source не потянули даже несколько сотен метров дампа - зависают или падают
mysqldump - единственный адекватный, который быстрее всех и без ошибок перемолол огромный дамп на несколько гигов
импортировать куда-нибудь, например в БД, и уже с помощью неё смотреть то, что нужно. А вы через блокнотик смотрите? :D Ну попробуйте notepad++, у меня спокойно открывает файлы весом 500мб.
@lampa, проблема в том, что импортируется 3 таблицы из 6. Вот я хочу и заглянуть в сам файл, может там действительно 3 таблицы. Нотепад ошибку выбивает.
Вы ведь не хотите просмотреть весь гигабайт данных, правда? То есть вам и не нужно открывать такой файл.
Вы скорее всего хотели запустить в файле поиск, правильно? Это можно сделать и не открывая файл редактором, для этого существуют более адекватные средства, например, grep .
Eсли вы хотите всего лишь узнать, сколько там таблиц, вам нужно что-то вроде
(Чтобы посмотреть первые 100 строк и увидеть, как там описана первая таблица, используйте sed 100q /path/to/sql .)
Встроенный просмотрщик в FAR открывает любые файлы моментально, так как он их не читает полностью при открытии, а считывает нужные части файла по мере просмотра.
Так нужно просто пользоваться правильными текстовыми редакторами! В свое время пользовался emeditor. 200-400 Мб открывал с пол пинка.
Но если по правильному, то такие файлы обычно смотрят в консоли с помощью less, grep и компании.
Если дело происходит в Unix системе можно открыть из шелла выполнив
получите указанное количество строк текста из файла с начала. хотите с конца - замените head на tail
notepad++ спокойно открывает такие файлы
В дополнение про FAR скажу, что mcedit из Midnight Commander работает аналогично. Последний раз большой дамп просматривал именно с его помощью.
Под какой платформой вы пытаетесь это сделать, Windows или Linux? В любом случае если вас интересует только просмотр, а не редактирования, лучше использовать просмотр а не редактирование. В windows в Total commander или Far В Linux mightnight commander. Ну или как советовали консольные средства поиска. findstr в windows grep в linux. Кстати в linux меня приятно удивил vim для редактирования больших файлов. Открыл файл в 400~ мб практически мгновенно. Так понимаю это связано с тем что он не пытается загрузить сразу всю информация в оперативную память, в отличии от большинства других текстовых редакторов.
MySQL server has gone away
Во время восстановления базы может выскочить ошибка:
at line xxx: MySQL server has gone away.
Как правило, ее причина в низком значении параметра max_allowed_packet, который отвечает за ограничение выполнения команд из файла. Посмотреть текущее значение можно командой в mysql:
> SHOW VARIABLES LIKE 'max_allowed_packet';
Чтобы увеличить значение параметра, открываем конфигурационный файл my.cnf:
* в некоторых версиях СУБД конфиг может находится по пути /etc/my.cnf.d/server.cnf.
В разделе [mysqldump] редактируем или добавляем:
[mysqldump]
.
max_allowed_packet = 512M
* значение для данного параметра не обязательно должно быть таким большим.
systemctl restart mariadb || systemctl restart mysql
Читайте также: