Як імпортувати великий файл sql у phpmyadmin


81

Я хочу імпортувати файл sql розміром приблизно 12 Мб. Але це спричиняє проблему під час завантаження. Чи є спосіб завантажити його, не розділяючи файл sql?


1
скористайтеся деякими інструментами mysql, такими як mysql workbenchormysql Yog
diEcho,

ви також можете побачити це тут stackoverflow.com/questions/9593128/… Данн.
Гній

Якщо ви не можете користуватися консоллю mysql, є цікаве рішення, яке походить із документації phpmyadmin: ozerov.de/bigdump
Паоло

Відповіді:


97

Спробуйте імпортувати його з консолі mysql на смак вашої ОС.

mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}

або якщо він знаходиться на віддаленому сервері, використовуйте прапор -h, щоб вказати хост.

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}

1
Добре, дякую за повернення хлопців. Я вношу зміни в php.ini та архівую файл. Мені це
вдається

3
найшвидший спосіб зробити це!
Aris

1
Це чудова відповідь. Для тих, хто може бути не дуже кмітливим, ви можете просто завантажити файл DB у ваш менеджер файлів на хості, а потім використовувати SSH на хості для локальної роботи. Це набагато простіше, ніж встановлення mysqlна сервері лише за одну міграцію. Дякуємо за допомогу, хлопці! (Крім того, мені не потрібні дужки)
DomainsFeatured

1
Для тих, хто цікавиться, вам потрібно перейти до папки MySQL / bin, щоб запустити команду. Працював чудово. Дякую.
Етьєн Дюпюї

1
А як щодо того, що вони не мають пароля? використання бази даних із іменем користувача за замовчуванням root? За допомогою цієї команди він запитує пароль.
Hkachhia

68

3 речі, які ви повинні зробити:

у php.iniвашій установці php (примітка: залежно від того, чи потрібно це для CLI, apache або nginx, знайдіть потрібний php.ini для маніпулювання)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

або встановити інші значення.

Перезапустіть / перезавантажте apache, якщо у вас встановлений apache, або php-fpm для nginx, якщо ви використовуєте nginx.

Віддалений сервер?

збільшити max_execution_timeтакож, оскільки завантаження файлу займе час.

Встановлення NGINX?

Ви повинні додати: client_max_body_size 912M;в /etc/nginx/nginx.confдо http{...}блоку


3
Правильна відповідь. Ці 3 рядки були must

Це потрібно додати до вашого каталогу apache, а не до каталогу cli (принаймні, як перевірено на моєму вікні Ubuntu)
Bad_Neighbor

змінити це на /etc/php/7.1/apache2/php.iniне вдалося
W.Doch

@RickSanchez ти впевнений, що запускаєш цю версію php на apache? будь ласка, запустіть phpinfo()і переконайтеся, що значення були встановлені правильно і сервер перезапущений
Тоскан

1
Не забудьте підняти значення max_execution_time у php ini та перезапустити apache
hamboy75

62

Відредагуйте файл config.inc.php, який знаходиться в каталозі phpmyadmin. У моєму випадку це знаходиться за адресою C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php.

Знайдіть рядок із $cfg['UploadDir']ним та оновіть його до$cfg['UploadDir'] = 'upload';

Потім створіть каталог під назвою 'upload' у каталозі phpmyadmin (для мене, на C:\wamp\apps\phpmyadmin3.2.0.1\upload\).

Потім помістіть великий файл SQL, який ви намагаєтеся імпортувати, у новий uploadкаталог. Тепер, перейшовши на сторінку імпортування db у консолі phpmyadmin, ви помітите випадаючий список, якого раніше не було - він містить усі файли sql у каталозі завантаження, який ви щойно створили. Тепер ви можете вибрати це і розпочати імпорт.

Якщо ви не використовуєте WAMP в Windows, то я впевнений, ви зможете адаптувати це до свого середовища без зайвих проблем.

Посилання: http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/


5
У більш пізніх версіях phpMyAdmin, варіанта $ cfg ['UploadDir'] взагалі немає; однак це рішення все ще працює, просто додавши var до нового рядка у файлі.
дан

Var знайдено в config.default.phpтому ж режимі, що я використовую phpmyadmin версії 4.6.4
KAD

1
Не вдалося відредагувати попередній коментар, каталогlibraries/config.default.php
KAD

чудове рішення, витративши два дні на спробу командного рядка MySQL із результатами відмов.
youhana

22

Рішення для КОРИСТУВАЧІВ LINUX (запуск із sudo)

Створення каталогів "завантаження" та "збереження":

mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save

Потім відредагуйте файл конфігурації phpmyadmin:

gedit /etc/phpmyadmin/config.inc.php

Нарешті, додайте абсолютний шлях для каталогів "завантаження" та "збереження":

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

Тепер просто опустіть файли в /etc/phpmyadmin/uploadпапку, і тоді ви зможете вибрати їх у phpmyadmin.

введіть тут опис зображення

Сподіваюся, це допоможе.


За допомогою цього методу phpmyadmin File could not be read!надсилає мені повідомлення, коли я натискаю кнопку подати у формі для завантаження. Посеред усунення несправностей це зараз.

@JoeRocc ти знайшов рішення для своєї проблеми? Можливо, це проблема дозволу чи власності. Спробуйте зsudo chmod 777 your-filename.sql
Guille Acosta

2
775. Не 777. Не слід радити встановлювати 777, щоб все працювало на реальному сервері. У нього є проблеми з безпекою.
Koushik Das

15

Всього один рядок, і все готово (переконайтесь, що команда mysql доступна як глобальна, або просто перейдіть до папки встановлення mysql і введіть до папки bin)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

Ось

  • u розшифровується як Користувач
  • p розшифровується як Пароль
  • D розшифровується як База даних

--- НЕ ЗАБУВАЙТЕ ДОДАТИ <ЗНАК ПІСЛЯ НАЗВАННЯ БАЗИ ДАНИХ ---

Повний шлях до файлу з ім'ям і розширенням може бути подібним

c:\folder_name\"folder name"\sql_file.sql

--- ЯКЩО ВАША ПАПКА І ІМЯ ФАЙЛУ МІСТИТЬ ПРОСТІР, ЩО ЇХ ЗВ'ЯЗАТИ ЗА ДВОЙНОЮ ЦИТАТОЮ ---

Порада. Примітка. Ви можете написати свій пароль після, -pале це не рекомендується, оскільки він відображатиметься іншим, хто в цей час спостерігає за вашим екраном. Якщо ви не напишете там, він запитає вас, коли ви виконаєте команду, натиснувши клавішу enter.



7

Я зміг імпортувати великий .sqlфайл, маючи таку конфігурацію у httpd.confфайлі:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted

    php_admin_value upload_max_filesize 128M
    php_admin_value post_max_size 128M
    php_admin_value max_execution_time 360
    php_admin_value max_input_time 360
</Directory>

4

Вам доведеться відредагувати файл php.ini. змініть наступне відповідно upload_max_filesize post_max_sizeдо розміру вашого файлу.

Спроба запустити, phpinfo()щоб побачити їх поточне значення. Якщо у вас немає можливості змінити файл php.ini безпосередньо, спробуйте ini_set ()

Якщо це теж не варіант, ви можете спробувати bigdump .




2

Я випадково натрапив на статтю, і це мені найбільше вдалося

  1. Відкрийте файл config.inc.php в директорії phpmyadmin за допомогою улюбленого редактора коду. У вашому локальному середовищі MAMP він повинен знаходитися тут:

Жорсткий диск »Програми» MAMP »bin» config.inc.php

  1. Зробіть пошук за фразою $cfg[‘UploadDir’]- вона буде виглядати так:

$cfg['UploadDir'] = '';

  1. Змініть його так:

$cfg['UploadDir'] = 'upload';

  1. Потім, у цьому каталозі phpmyadmin, створіть нову папку та назвіть її завантаженою.

  2. Візьміть великий файл .sql, який ви намагаєтеся імпортувати, і покладіть його в нову папку для завантаження.

  3. Тепер, наступного разу, коли ви будете імпортувати базу даних у phpMyAdmin, ви побачите нове спадне поле прямо під стандартною областю перегляду у вашому розділі «Файл для імпорту».


2

Гаразд, ви використовуєте PHPMyAdmin, але іноді найкращий спосіб - через термінал:

  • Підключення до бази даних: mysql -h localhost -u root -p(переключити root та localhost для розташування користувачів та бази даних)
  • Почати імпорт із дампа: \. /path/to/your/file.sql
  • Іди візьми кави і похвалися собою, бо ти використовуєш термінал.

І це все. Тільки пам’ятайте, якщо ви знаходитесь на віддаленому сервері, ви повинні завантажити файл .sql в якусь папку.


2

відповідь для тих, хто має спільний хостинг. Найкраще використовувати цей маленький скрипт, який я щойно використав для імпорту 300 Мб файлу БД на свій сервер. Сценарій називається Big Dump.

надає сценарій для імпорту великих БД на сервери з обмеженими ресурсами


Це насправді хороше рішення, але Ви отримали прихильність через URL, який одного разу може бути недійсним. Будь ласка, додайте трохи інформації про цей сценарій, зокрема його назву.
замість цього

його називається великий дамп, він зупиняє зупинку або переривання сервера SQL під час імпорту великого файлу бази даних на сервер. До речі, є інші відповіді з URL-адресами, які можуть бути
недоступні

2

У MAMP ви можете завантажувати величезні файли, виконуючи:

  1. створення нової папки в цьому каталозі / MAMP / bin / phpMyAdmin / "folderName"

  2. а потім відредагуйте рядок 531 "/MAMP/bin/phpMyAdmin/config.inc.php":

       $cfg['UploadDir']= 'folderName';   
    
  3. Скопіюйте файли .sql або .csv у цю папку.

  4. Тепер у вас буде ще одна опція у "PhpMyAdmin": Виберіть із каталогу завантаження веб-сервера newFolder /: Ви можете вибрати свій файл та імпортувати його.

    Ви можете завантажити будь-який файл зараз !!


1

Найкращий спосіб завантажити великий файл, не використовуючи phpmyadmin. викликати phpmyadin спочатку завантажити файл за допомогою класу завантаження php, а потім виконати sql, що спричиняє більшу частину часу його очікування.

найкращий спосіб: ввести папку wamp> bin> mysql> dinrectory bin, потім написати цей рядок

mysql -u root -p списки назв <latestdb.sql тут - це ім'я бази даних спочатку створіть порожню базу даних, а latestdb.sql - це ваше ім'я файлу sql, де представлені ваші дані.

але одна важлива річ - якщо у вашому файлі бази даних є дані Unicode. вам потрібно відкрити файл latestdb.sql і один рядок перед будь-яким рядком. рядок:

ВСТАНОВИТИ ІМЕНИ utf8; тоді у вашому командному режимі запустіть цей код сценарію


1
  1. Відкрийте файл sql у текстовому редакторі (наприклад, Блокноті)
  2. Виберіть Усі -> Копіювати
  3. Перейдіть до phpMyAdmin, виберіть свою базу даних і перейдіть на вкладку SQL
  4. Вставте скопійований вміст у буфер обміну
  5. Це може спливати помилку JavaScript, ігнорувати її
  6. Виконати

Невдала практика! Великі тексти спричинять великі проблеми, коли ви це робите. Найкращий спосіб - це налаштувати php.ini, щоб дозволити великий імпорт або імпорт через mysql.
Марсело Агімовель,

0

Змініть налаштування сервера, щоб дозволити завантаження файлів розміром більше 12 Мб, і з вами все повинно бути. Зазвичай для завантаження файлів налаштування сервера встановлюються від 5 до 8 Мб.


1
Це не дає відповіді на запитання. Щоб критикувати або вимагати роз’яснень від автора, залиште коментар під його публікацією. - З огляду
Себастьян Брош,

1
насправді на момент публікації цієї відповіді це була найпоширеніша помилка (3 роки тому), що завантаження файлів за замовчуванням було недостатньо великим. Він використовує phpmyadmin == веб-інтерфейс. import == завантажити з диска. upload == налаштування сервера. налаштування сервера == за замовчуванням, що становить 5 або 8 Мб 3 роки тому. Тому я не бачу, як це НЕ дає відповіді. Так, я не вів його за руку, як точно налаштувати, оскільки він не вказав, який сервер він використовує, apache, ngix, iis та ін.
Tschallacka

0

Одним із рішень є використання командного рядка;

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

Просто переконайтеся, що шлях до SQL файлу для імпорту вказаний явно.

У моєму випадку я використав це;

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

Вуаля! вам добре їхати.



0

PHPmyadmin також приймає стиснені файли у форматі gzip, тому ви можете сперти файл у архів (скористайтеся 7Zip, якщо у вас його немає) і завантажити файл, що зберігається у архіві. Оскільки це текстовий файл, він матиме хороший коефіцієнт стиснення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.