Подтвердить что ты не робот

Как импортировать большой (14 ГБ) файл дампа MySQL в новую базу данных MySQL?

Как я могу импортировать большой (14 ГБ) файл дампа MySQL в новую базу данных MySQL?

4b9b3361

Ответ 1

Я искал вокруг, и только это решение помогло мне:

mysql -u root -p

set global net_buffer_length=1000000; --Set network buffer length to a large byte number

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour

source file.sql --Import your sql dump file

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!

Ответ найден здесь.

Ответ 2

Вы пытались просто использовать клиент командной строки mysql напрямую?

mysql -u username -p -h hostname databasename < dump.sql

Если вы не можете этого сделать, есть множество утилит, которые вы можете найти в Googling, которые помогут вам импортировать большой дамп в MySQL, например BigDump.

Ответ 3

Первая команда open- >

cd..

cd..

f: -- xampp installed drive

cd xampp/mysql/bin

mysql -u root -p

set global net_buffer_length=1000000; --Set network buffer length to a large byte number

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour

use DATABASE_NAME;

source G:\file.sql; --Import your sql dump file

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!

Ответ 4

Я публикую свое мнение в нескольких ответах, которые я видел, которые не упоминают, с чем я столкнулся, и, вероятно, это даже победит BigDump, поэтому проверьте его:

Я пытался загрузить 500-мегагерцовый дамп через командную строку Linux и продолжал устранять ошибки "Mysql server". Настройки в my.conf не помогли. То, что оказалось, это исправить... Я делал одну большую расширенную вставку, например:

    insert into table (fields) values (a record, a record, a record, 500 meg of data);

Мне нужно было отформатировать файл как отдельные вставки вроде этого:

    insert into table (fields) values (a record);
    insert into table (fields) values (a record);
    insert into table (fields) values (a record);
    Etc.

И чтобы сгенерировать дамп, я использовал что-то вроде этого, и он работал как шарм:

    SELECT 
        id,
        status,
        email
    FROM contacts
    INTO OUTFILE '/tmp/contacts.sql'
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES STARTING BY "INSERT INTO contacts (id,status,email) values ("
    TERMINATED BY ');\n'

Ответ 5

Простое решение - выполнить этот запрос: mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

И если вы хотите импортировать с индикатором выполнения, попробуйте это: pv yoursqlfile.sql | mysql -uxxx -pxxxx databasename

Ответ 6

В недавнем проекте мы столкнулись с проблемой работы с большим количеством данных и манипулирования ими. Наш клиент предоставил нам 50 CSV файлов размером от 30 МБ до 350 МБ, содержащих в общей сложности около 20 миллионов строк данных и 15 столбцов данных. Нашей конечной целью было импортировать данные и манипулировать ими в реляционной базе данных MySQL, которая будет использоваться для разработки интерфейсного PHP-скрипта, который мы также разработали. Работа с таким большим или большим набором данных - не самая простая задача, и при работе над ней нам хотелось бы уделить время тому, чтобы поделиться некоторыми вещами, которые следует учитывать и знать при работе с такими большими наборами данных.

  1. Предварительный импорт набора данных для анализа

    Я не могу подчеркнуть этот первый шаг достаточно! Убедитесь, что у вас есть время, чтобы проанализировать данные, с которыми вы работаете, прежде чем импортировать их вообще. Понимание того, что представляют все данные, какие столбцы относятся к каким и каким типам манипуляций вам нужно, в конечном итоге сэкономит ваше время.

  2. НАГРУЗКА ДАННЫХ ИНФИЛЬ - ваш друг

    Импортировать большие файлы данных, такие как те, с которыми мы работали (и большие), может быть непросто, если вы попытаетесь выполнить обычную вставку CSV с помощью такого инструмента, как PHPMyAdmin. Мало того, что во многих случаях он потерпит неудачу, потому что ваш сервер не сможет обработать загрузку файлов размером с некоторые из ваших файлов данных из-за ограничений размера загрузки и тайм-аутов сервера, но даже если это все-таки произойдет, процесс может занять несколько часов в зависимости от нашего ваше оборудование. Функция SQL LOAD DATA INFILE была создана для обработки этих больших наборов данных и значительно сократит время, необходимое для обработки процесса импорта. Следует отметить, что это может быть выполнено через PHPMyAdmin, но у вас все еще могут быть проблемы с загрузкой файлов. В этом случае вы можете загрузить файлы вручную на свой сервер и затем выполнить из PHPMyAdmin (см. их руководство для получения дополнительной информации) или выполнить команду через консоль SSH (при условии, что у вас есть собственный сервер)

    LOAD DATA INFILE '/mylargefile.csv' INTO TABLE temp_data FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
    
  3. MYISAM против InnoDB

    Большая или маленькая база данных всегда полезно уделить немного времени, чтобы обдумать, какой механизм базы данных вы собираетесь использовать для своего проекта. Два основных движка, о которых вы собираетесь прочитать, - это MYISAM и InnoDB, каждый из которых имеет свои преимущества и недостатки. Вкратце (в общем) необходимо учитывать следующее:

    MYISAM

    • Меньшее использование памяти
    • Разрешает полнотекстовый поиск
    • Блокировка на уровне таблицы - блокирует всю таблицу при записи
    • Отлично подходит для интенсивных приложений

    InnoDB

    • Элемент списка
    • Использует больше памяти
    • Нет поддержки полнотекстового поиска
    • Быстрее производительность
    • Блокировка уровня строки - блокирует одну строку при записи
    • Отлично подходит для чтения/записи интенсивных приложений
  4. Тщательно планируйте свой дизайн

    MySQL AnalyzeYour дизайн/структура баз данных будет иметь большое значение для их работы. Не спешите с планированием различных полей и анализируйте данные, чтобы выяснить, какие типы полей лучше всего подходят, значения по умолчанию и длина полей. Вы хотите приспособиться к нужным объемам данных и стараться избегать столбцов varchar и чрезмерно больших типов данных, когда данные не гарантируют этого. В качестве дополнительного шага после завершения работы с базой данных вы захотите увидеть, что MySQL предлагает в качестве типов полей для всех ваших различных полей. Вы можете сделать это, выполнив следующую команду SQL:

    ANALYZE TABLE my_big_table
    

    Результатом будет описание каждой информации в столбцах вместе с рекомендацией относительно того, какой тип данных должен быть, а также надлежащей длины. Теперь вам не обязательно следовать рекомендациям, поскольку они основаны исключительно на существующих данных, но это может помочь вам встать на правильный путь и заставить задуматься

  5. Индексировать или не индексировать

    Для такого большого набора данных очень важно создавать правильные индексы для ваших данных, исходя из того, что вам нужно делать с данными во внешнем интерфейсе, НО, если вы планируете манипулировать данными заранее, воздержитесь от размещения слишком большого количества индексов на данные. Это не только увеличит вашу таблицу SQL, но также замедлит некоторые операции, такие как сложение столбцов, вычитание и дополнительное индексирование. В нашем наборе данных нам нужно было взять только что импортированную информацию и разбить ее на несколько разных таблиц, чтобы создать реляционную структуру, а также взять определенные столбцы и разделить информацию на дополнительные столбцы. Мы поместили индекс в минимум столбцов, которые, как мы знали, помогут нам в манипулировании. В общем, мы взяли 1 большую таблицу, состоящую из 20 миллионов строк данных, и разделили ее информацию на 6 различных таблиц с частями основных данных в них вместе с вновь созданными данными, основанными на существующем контенте. Мы сделали все это, написав небольшие PHP-скрипты для анализа и перемещения данных.

  6. Нахождение баланса

    Большая часть работы с большими базами данных с точки зрения программирования - это скорость и эффективность. Получение всех данных в вашу базу данных - это здорово, но если сценарий, который вы пишете для доступа к данным, медленный, какой смысл? При работе с большими наборами данных крайне важно, чтобы вы потратили время на понимание всех запросов, выполняемых вашим сценарием, и на создание индексов, которые могли бы помочь этим запросам, где это возможно. Один из таких способов проанализировать, что делают ваши запросы, - выполнить следующую команду SQL:

    EXPLAIN SELECT some_field FROM my_big_table WHERE another_field='MyCustomField';
    

    Добавляя EXPLAIN в начало вашего запроса, MySQL будет выдавать информацию, описывающую, какие индексы он пытался использовать, использовал и как их использовал. Я пометил этот момент ‘Поиск баланса, потому что, хотя индексы могут помочь вашему скрипту работать быстрее, они могут так же легко заставить его работать медленнее. Вы должны убедиться, что вы указали, что нужно и только то, что нужно. Каждый индекс потребляет дисковое пространство и добавляет к накладным расходам таблицы. Каждый раз, когда вы вносите изменения в свою таблицу, вы должны перестраивать индекс для этой конкретной строки, и чем больше у вас индексов в этих строках, тем больше времени это займет. Все это сводится к созданию интеллектуальных индексов, эффективных SQL-запросов и, что самое важное, к сравнительному анализу, когда вы поймете, что делает каждый из ваших запросов и сколько времени это занимает.

  7. Индекс включен, индекс выключен

    Когда мы работали над базой данных и сценарием переднего плана, и клиент, и мы начали замечать мелочи, которые требовали изменения и которые требовали от нас внесения изменений в базу данных. Некоторые из этих изменений включали добавление/удаление столбцов и изменение типов столбцов. Поскольку мы уже настроили ряд индексов для данных, для внесения любого из этих изменений требовалось, чтобы сервер проделал серьезную работу, чтобы сохранить индексы на месте и обработать любые изменения. На нашем небольшом VPS-сервере некоторые изменения заняли более 6 часов, что, конечно, не помогло нам в быстром развитии. Решение? Отключи индексы! Иногда лучше отключить индексы, внести изменения, а затем снова включить индексы... особенно, если вам нужно сделать много разных изменений. При отключенных индексах изменения занимали считанные секунды или минуты по сравнению с часами. Когда мы были довольны нашими изменениями, мы просто снова включили наши индексы. Конечно, это заняло довольно много времени, чтобы переиндексировать все, но, по крайней мере, он мог переиндексировать все сразу, сократив общее время, необходимое для внесения этих изменений один за другим. Вот как это сделать:

    • Отключить индексы: ALTER TABLE my_big_table DISABLE KEY
    • Включить индексы: ALTER TABLE my_big_table ENABLE KEY
  8. Настройте MySQL

    Не пренебрегайте своим сервером, когда речь идет о быстром запуске базы данных и скрипта. Ваше оборудование требует столько же внимания и настройки, как ваша база данных и сценарий. В частности, важно взглянуть на файл конфигурации MySQL, чтобы увидеть, какие изменения вы можете внести, чтобы улучшить его производительность. Отличным небольшим инструментом, с которым мы столкнулись, является MySQL Tuner http://mysqltuner.com/. Это быстрый маленький Perl-скрипт, который вы можете загрузить прямо на свой сервер и запустить через SSH, чтобы увидеть, какие изменения вы можете внести в свою конфигурацию. Обратите внимание, что вы должны активно использовать свой сценарий и базу данных перед началом работы с тюнером, чтобы у тюнера были данные для анализа. Запуск его на новом сервере предоставит только минимальную информацию и параметры настройки. Мы сочли замечательным использовать скрипт тюнера каждые несколько дней в течение двух недель, чтобы посмотреть, какие рекомендации он даст, и в итоге мы значительно повысили производительность баз данных.

  9. Не бойтесь спрашивать

    Работа с SQL может быть сложной с самого начала, а работа с очень большими наборами данных только усложняет задачу. Не бойтесь обращаться к профессионалам, которые знают, что они делают, когда дело доходит до больших наборов данных. В конечном итоге вы получите превосходный продукт, более быструю разработку и более быструю производительность интерфейса. Когда дело доходит до больших баз данных, иногда опытным глазам нужны профессионалы, чтобы найти все небольшие предостережения, которые могут снизить производительность ваших баз данных.

Ответ 7

В Windows я использую Navicat Premium. Он позволяет передавать объекты базы данных из одной базы данных в другую или в файл sql. Целевая база данных может находиться на том же сервере, что и источник или на другом сервере.

Navicat Online Manual для Windows

Ответ 8

Используйте команду источника для импорта большой базы данных

mysql -u username -p

> source sqldbfile.sql

это может импортировать любой большой DB

Ответ 9

согласно документации mysql ни одна из этих работ не работает! Люди обращают внимание! поэтому мы загрузим test.sql в test_db введите это в оболочку:

mysql --user = user_name --password = yourpassword test_db < д:/test.sql

Это работает точно!

Спасибо.

Ответ 10

перейдите к C:\wamp64\alias\phpmyadmin.conf и измените с:

php_admin_value upload_max_filesize 128M
php_admin_value post_max_size 128M

to

php_admin_value upload_max_filesize 2048M
php_admin_value post_max_size 2048M

или более :)

Ответ 11

Вам нужно

  • Bigdump script bigdump.php из загрузки
  • Дамп файл вашей базы данных, созданный phpMyAdmin или другим инструментом, позволяет называть его dump.sql. Вы также можете использовать сжатые файлы дампа GZip, назовем его dump.gz.
  • Доступ к вашей базе данных mySQL
  • Доступ к учетной записи для определенного веб-сервера с установленным PHP. Этот веб-сервер должен иметь возможность подключения к базе данных mySQL. Эта возможность, вероятно, присутствует, если ваш веб-сервер и сервер mySQL принадлежат одному и тому же интернет-провайдеру.
  • Некоторый хороший текстовый редактор, например Notepad ++, может редактировать файл конфигурации.
  • Некоторые FTP-клиенты для загрузки файлов на веб-сервер.
  • Общие знания о файлах, PHP, базах mySQL, phpMyAdmin, FTP и HTTP