So importieren Sie eine große SQL-Datei in phpmyadmin

80

Ich möchte eine SQL-Datei von ca. 12 MB importieren. Aber es verursacht Probleme beim Laden. Gibt es eine Möglichkeit, es hochzuladen, ohne die SQL-Datei zu teilen?

Jasmeet Kaur Chauhan
quelle
1
Verwenden Sie einige MySQL-Tools wie mysql workbenchodermysql Yog
diEcho
Sie können es auch hier sehen stackoverflow.com/questions/9593128/… Dunn.
Mist
Wenn Sie die MySQL-Konsole nicht verwenden können, gibt es eine interessante Lösung, die aus der phpmyadmin-Dokumentation stammt: ozerov.de/bigdump
Paolo Gibellini

Antworten:

96

Versuchen Sie, es gemäß dem Geschmack Ihres Betriebssystems von der MySQL-Konsole zu importieren.

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

oder wenn es sich auf einem Remote-Server befindet, verwenden Sie das Flag -h, um den Host anzugeben.

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}
Manurajhada
quelle
1
Ok, danke für die Rückkehr Jungs. Ich nehme Änderungen in der php.ini vor und komprimiere die Datei. Es funktioniert für mich :)
Jasmeet Kaur Chauhan
3
schnellster Weg dies zu tun!
Aris
1
Dies ist eine großartige Antwort. Für alle, die nicht besonders versiert sind, können Sie einfach Ihre DB-Datei in Ihren Dateimanager auf Ihrem Host hochladen und dann SSH auf Ihrem Host verwenden, um lokal zu arbeiten. Dies ist viel einfacher als die Installation mysqlauf Ihrem Server für nur eine Migration. Danke für die Hilfe Jungs! (Außerdem brauchte ich keine Klammern)
DomainsFeatured
1
Für diejenigen, die sich fragen, müssen Sie zu Ihrem MySQL / bin-Ordner navigieren, um den Befehl auszuführen. Hat super funktioniert. Vielen Dank.
Etienne Dupuis
1
Was ist damit, dass sie kein Passwort haben? Verwenden Sie die Datenbank mit dem Standardbenutzernamen root? Mit diesem Befehl wird nach dem Passwort gefragt.
Hkachhia
67

3 Dinge, die Sie tun müssen:

in php.iniIhrer PHP-Installation (Hinweis: Je nachdem, ob Sie es für CLI, Apache oder Nginx möchten, finden Sie die richtige PHP.ini zum Manipulieren)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

oder andere Werte einstellen.

Starten Sie Apache neu / laden Sie es neu, wenn Sie Apache installiert haben, oder php-fpm für nginx, wenn Sie nginx verwenden.

Remote Server?

erhöhen Sie max_execution_timeauch, da das Hochladen der Datei einige Zeit in Anspruch nimmt.

NGINX-Installation?

Sie müssen hinzufügen: client_max_body_size 912M;in /etc/nginx/nginx.confden http{...}Block

Toskan
quelle
3
Richtige Antwort. Diese 3 Zeilen waren ein Muss
Dies muss zu Ihrem Apache-Verzeichnis hinzugefügt werden, nicht zum CLI-Verzeichnis (zumindest wie auf meiner Ubuntu-Box getestet)
Bad_Neighbor
dies zu ändern /etc/php/7.1/apache2/php.inihat nicht funktioniert
W.Doch
@ RickSanchez Bist du sicher, dass du diese PHP-Version auf Apache ausführst? Bitte führen Sie phpinfo()und überprüfen Sie, ob die Werte korrekt eingestellt wurden und der Server neu gestartet wurde
Toskan
1
Vergessen Sie nicht, den Wert für max_execution_time in PHP INI zu erhöhen und Apache neu zu starten
hamboy75
62

Bearbeiten Sie die Datei config.inc.php im Verzeichnis phpmyadmin. In meinem Fall befindet es sich bei C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php.

Suchen Sie die Zeile mit $cfg['UploadDir']und aktualisieren Sie sie auf$cfg['UploadDir'] = 'upload';

Erstellen Sie dann ein Verzeichnis mit dem Namen "upload" im Verzeichnis phpmyadmin (für mich unter C:\wamp\apps\phpmyadmin3.2.0.1\upload\).

Platzieren Sie dann die große SQL-Datei, die Sie importieren möchten, in das neue uploadVerzeichnis. Wenn Sie jetzt in der phpmyadmin-Konsole auf die Datenbank-Importseite gehen, werden Sie ein Dropdown-Geschenk bemerken, das vorher nicht vorhanden war - es enthält alle SQL-Dateien im Upload-Verzeichnis, das Sie gerade erstellt haben. Sie können dies nun auswählen und mit dem Import beginnen.

Wenn Sie WAMP unter Windows nicht verwenden, können Sie dies sicher ohne großen Aufwand an Ihre Umgebung anpassen.

Referenz: http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/

Siraj Khan
quelle
5
Bei neueren Versionen von phpMyAdmin ist die Variable $ cfg ['UploadDir'] überhaupt nicht vorhanden. Diese Lösung funktioniert jedoch weiterhin, indem nur die Variable in einer neuen Zeile in der Datei hinzugefügt wird.
Dan
Die var befindet sich in config.default.phpdemselben Verzeichnis und verwende phpmyadmin Version 4.6.4
KAD
1
Der vorherige Kommentar konnte nicht mehr bearbeitet werden. Das Verzeichnis lautetlibraries/config.default.php
KAD
wunderbare Lösung, nachdem Sie zwei Tage lang die MySQL-Befehlszeile mit Fehlerergebnissen ausprobiert haben.
Youhana
22

Lösung für LINUX USERS (mit sudo ausführen)

Erstellen Sie Verzeichnisse zum Hochladen und Speichern:

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

Bearbeiten Sie dann die Konfigurationsdatei von phpmyadmin:

gedit /etc/phpmyadmin/config.inc.php

Fügen Sie zum Schluss den absoluten Pfad für die Verzeichnisse "Upload" und "Save" hinzu:

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

/etc/phpmyadmin/uploadLegen Sie jetzt einfach Dateien in einem Ordner ab und Sie können sie aus phpmyadmin auswählen.

Geben Sie hier die Bildbeschreibung ein

Ich hoffe das hilft.

Guille Acosta
quelle
Mit dieser Methode gibt mir phpmyadmin eine File could not be read!Nachricht, wenn ich im Upload-Formular auf die Schaltfläche " Senden" klicke . In der Mitte der Fehlerbehebung jetzt.
@JoeRocc haben Sie eine Lösung für Ihr Problem gefunden? Vielleicht ist es ein Erlaubnis- oder Besitzproblem. Versuchen Sie es mitsudo chmod 777 your-filename.sql
Guille Acosta
2
775. Nicht 777. Man sollte NICHT raten, 777 einzustellen, damit die Dinge auf einem Live-Server funktionieren. Es hat Sicherheitsprobleme.
Koushik Das
14

Nur eine Zeile und Sie sind fertig (stellen Sie sicher, dass der Befehl mysql als global verfügbar ist, oder gehen Sie einfach zum Installationsordner von mysql und geben Sie ihn in den Ordner bin ein).

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

Hier

  • u steht für User
  • p steht für Passwort
  • D steht für Datenbank

--- VERGESSEN SIE NICHT, <NACH DEM DATENBANKNAMEN EIN ZEICHEN HINZUZUFÜGEN ---

Ein vollständiger Dateipfad mit Name und Erweiterung kann wie folgt aussehen

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

--- WENN IHR ORDNER UND DATEINAME SPACE ENTHÄLT, ALS SIE MIT DOPPELZITAT BINDEN ---

Tipp und Hinweis: Sie können Ihr Passwort später schreiben -p, dies wird jedoch nicht empfohlen, da es anderen Personen angezeigt wird, die zu diesem Zeitpunkt Ihren Bildschirm beobachten. Wenn Sie dort nicht schreiben, werden Sie gefragt, wann Sie den Befehl ausführen, indem Sie die Eingabetaste drücken.

Vikas Khunteta
quelle
8

Erstellen Sie eine Zip- oder TAR-Datei und laden Sie sie in phpmyadmin hoch.

Sachin aus Pune
quelle
7

Ich konnte eine große .sqlDatei importieren, indem ich die folgende Konfiguration in der httpd.confDatei hatte:

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>
cosmintam
quelle
4

Sie müssen die Datei php.ini bearbeiten. Ändern Sie Folgendes upload_max_filesize post_max_size, um Ihre Dateigröße anzupassen.

Beim Ausführen wird versucht phpinfo(), den aktuellen Wert anzuzeigen. Wenn Sie nicht in der Lage sind, die Datei php.ini direkt zu ändern, versuchen Sie es mit ini_set ()

Wenn dies auch keine Option ist, können Sie bigdump ausprobieren.

shxfee
quelle
3

Dafür müssen Sie die php.iniDatei bearbeiten . Wenn Sie den Ubuntu-Server verwenden, ist dies der Link. Das Hochladen einer großen Datei in phpMyAdmin kann Ihnen helfen.

Nikunj K.
quelle
Danke, das war perfekt.
Morteza Sepehri Niya
2

Ich bin auf einen Artikel gestoßen und das hat am besten für mich funktioniert

  1. Öffnen Sie die Datei config.inc.php im Verzeichnis phpmyadmin mit Ihrem bevorzugten Code-Editor. In Ihrer lokalen MAMP-Umgebung sollte es sich hier befinden:

Festplatte »Anwendungen» MAMP »bin» config.inc.php

  1. Suchen Sie nach dem Ausdruck $cfg[‘UploadDir’]- er wird folgendermaßen aussehen:

$cfg['UploadDir'] = '';

  1. Ändern Sie es so, dass es so aussieht:

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

  1. Erstellen Sie dann in diesem phpmyadmin-Verzeichnis einen neuen Ordner und benennen Sie ihn hoch.

  2. Nehmen Sie die große SQL-Datei, die Sie importieren möchten, und legen Sie sie in diesem neuen Upload-Ordner ab.

  3. Wenn Sie das nächste Mal eine Datenbank in phpMyAdmin importieren, wird ein neues Dropdown-Feld direkt unter dem Standard-Suchbereich in Ihrem Abschnitt "Zu importierende Datei" angezeigt.

Bobin Thomas
quelle
2

Ok, Sie verwenden PHPMyAdmin, aber manchmal ist der beste Weg über das Terminal:

  • Verbindung zur Datenbank herstellen: mysql -h localhost -u root -p(Root und Localhost für Benutzer- und Datenbankspeicherort wechseln)
  • Import aus Dump starten: \. /path/to/your/file.sql
  • Nehmen Sie sich einen Kaffee und prahlen Sie mit sich selbst, weil Sie das Terminal benutzen.

Und das ist es. Denken Sie daran, wenn Sie sich auf einem Remote-Server befinden, müssen Sie die SQL-Datei in einen Ordner hochladen.

Marcelo Agimóvel
quelle
2

die Antwort für diejenigen mit Shared Hosting. Verwenden Sie am besten dieses kleine Skript, mit dem ich gerade eine 300-MB-DB-Datei auf meinen Server importiert habe. Das Skript heißt Big Dump.

Bietet ein Skript zum Importieren großer Datenbanken auf ressourcenbeschränkten Servern

c0d3x1337
quelle
Dies ist eigentlich eine gute Lösung, aber Sie haben aufgrund einer URL, die eines Tages ungültig sein kann, eine Ablehnung erhalten. Bitte fügen Sie einige Informationen zu diesem Skript hinzu, insbesondere den Namen.
Stattdessen
Der so genannte Big Dump verhindert, dass der SQL Server beim Importieren einer großen Datenbankdatei auf den Server angehalten oder unterbrochen wird. Übrigens gibt es andere Antworten mit URLs, die jeden Moment nicht verfügbar sind, und keine von ihnen wurde
abgelehnt
1

Der beste Weg, um eine große Datei hochzuladen, ist nicht phpmyadmin. verursachen, dass phpmyadin zuerst die Datei mit der PHP-Upload-Klasse hochlädt und dann SQL ausführt, was dazu führt, dass die meiste Zeit die Zeit abgelaufen ist.

Der beste Weg ist: Geben Sie den Ordner wamp> bin> mysql> bin ein und schreiben Sie diese Zeile

mysql -u root -p listnames <latestdb.sql hier listnames ist zuerst der Datenbankname. Bitte erstellen Sie die leere Datenbank und die latestdb.sql ist Ihr SQL-Dateiname, in dem Ihre Daten vorhanden sind.

Eine wichtige Sache ist jedoch, ob Ihre Datenbankdatei Unicode-Daten enthält. Sie müssen Ihre Datei "latestdb.sql" und eine Zeile vor jeder Zeile öffnen. Die Zeile lautet:

SET NAMES utf8; Führen Sie dann in Ihrem Befehlsmodus diesen Skriptcode aus

Tapos Ghosh
quelle
1
  1. Öffnen Sie Ihre SQL-Datei in einem Texteditor (wie Notepad).
  2. Wählen Sie Alle -> Kopieren
  3. Gehen Sie zu phpMyAdmin, wählen Sie Ihre Datenbank aus und wechseln Sie zur Registerkarte SQL
  4. Fügen Sie den kopierten Inhalt in die Zwischenablage ein
  5. Möglicherweise wird ein Javascript-Fehler angezeigt. Ignorieren Sie ihn
  6. Ausführen
Teo Mihaila
quelle
Keine gute Praxis! Große Texte verursachen dabei große Probleme. Am besten konfigurieren Sie php.ini so, dass ein großer Import oder Import über MySQL möglich ist.
Marcelo Agimóvel
1

In MAMP können Sie große Dateien laden, indem Sie:

  1. Erstellen eines neuen Ordners in diesem Verzeichnis / MAMP / bin / phpMyAdmin / "Ordnername"

  2. und bearbeiten Sie dann "/MAMP/bin/phpMyAdmin/config.inc.php" Zeile 531:

       $cfg['UploadDir']= 'folderName';   
    
  3. Kopieren Sie Ihre SQL- oder CSV-Dateien in diesen Ordner.

  4. Jetzt haben Sie eine weitere Option in "PhpMyAdmin": Wählen Sie aus dem Upload-Verzeichnis des Webservers newFolder /: Sie können Ihre Datei auswählen und importieren.

    Sie können jetzt jede Datei laden !!

Saad Joudi
quelle
0

Ändern Sie Ihre Servereinstellungen, um das Hochladen von Dateien zuzulassen, die größer als 12 MB sind, und es sollte Ihnen gut gehen. Normalerweise sind die Servereinstellungen für das Hochladen von Dateien auf 5 bis 8 MB festgelegt.

Tschallacka
quelle
1
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. - Aus dem Rückblick
Sebastian Brosch
1
Zum Zeitpunkt der Veröffentlichung dieser Antwort war dies der häufigste Fehler (vor 3 Jahren), dass das Hochladen von Dateien standardmäßig nicht groß genug war. Er benutzt phpmyadmin == Webinterface. import == von CD hochladen. Upload == Servereinstellungen. Servereinstellungen == Standardeinstellungen sind 5 oder 8 MB vor 3 Jahren. Ich sehe also nicht, wie dies KEINE Antwort liefert. Ja, ich habe ihn nicht an der Hand geführt, wie man genau einrichtet, weil er nicht angegeben hat, welchen Server er verwendet, Apache, Ngix, Iis, andere.
Tschallacka
0

Eine Lösung besteht darin, die Befehlszeile zu verwenden.

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

Stellen Sie einfach sicher, dass der Pfad zur zu importierenden SQL- Datei explizit angegeben ist.

In meinem Fall habe ich das benutzt;

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

Voila! Du bist startklar.

Ejalee
quelle
0

Ich habe ein PHP-Skript erstellt, mit dem große Datenbank-Dumps importiert werden können, die von phpmyadmin generiert wurden. Es heißt PETMI und kann hier heruntergeladen werden [Projektseite] [Gitlab-Seite] . Es wurde mit einer 1 GB Datenbank getestet.

desbest
quelle
0

PHPmyadmin akzeptiert auch komprimierte Dateien im gzip-Format, sodass Sie die Datei gzipen können (verwenden Sie 7Zip, wenn Sie keine haben) und die komprimierte Datei hochladen können. Da es sich um eine Textdatei handelt, hat sie ein gutes Komprimierungsverhältnis.

Marlon
quelle