GroßeSQL-Datei in MySQL importieren?

GroßeSQL-Datei in MySQL importieren?

am 01.02.2007 22:16:20 von Sascha Blum

Hallo Leute,

ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB große
SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann würde ich
gerne wissen wie ich die am besten da importiert bekomme?

Mit phpmyadmin habe ich es bereits versucht alle anderen Tabellen gingen
problemlos nur die eine macht Probleme weil das da irgendwie in phpmyadmin
wohl auf 2 MB Dateien begrenzt ist. Shell-Zugriff habe ich keinen auf den
Server. Muss also irgendwie über PHP oder so laufen ...

Wäre super wenn das möglich wäre. Besten Dank vorab.

Viele Grüße

Sascha

Re: GroßeSQL-Datei in MySQL importieren?

am 01.02.2007 23:19:03 von Stefan Kuhn

Am Thu, 01 Feb 2007 22:16:20 +0100 schrieb Sascha Blum:

Hallo,

> ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB große
> SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann würde ich
> gerne wissen wie ich die am besten da importiert bekomme?

was steht denn in der SQL - Datei.
DDL oder Abfragen?
Da es sich ja mit der Wahrscheinlichkeit 0 um eine einzige Query handelt,
kannst du die eine Datei ja in 3 kleinere zerlegen. Wichtig ist, dass du
nicht die Syntax zerstörst.

HTH
Stefan

Re: GroßeSQL-Datei in MySQL importieren?

am 01.02.2007 23:31:53 von Sascha Blum

Hallo,

Stefan Kuhn wrote:

> Am Thu, 01 Feb 2007 22:16:20 +0100 schrieb Sascha Blum:
>
> Hallo,
>
>> ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB
>> große SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann
>> würde ich gerne wissen wie ich die am besten da importiert bekomme?
>
> was steht denn in der SQL - Datei.
> DDL oder Abfragen?

nunja erst ein create um eine Tabelle anzulegen und danach unendlich viele
Zeilen von einem insert ...


> Da es sich ja mit der Wahrscheinlichkeit 0 um eine einzige Query handelt,
> kannst du die eine Datei ja in 3 kleinere zerlegen. Wichtig ist, dass du
> nicht die Syntax zerstörst.

das kann ja mehr als heiter werden bei sovielen Zeilen ... :-(

Viele Grüße

Sascha

Re: Große SQL-Datei in MySQL importieren?

am 02.02.2007 05:17:56 von Hadanite Marasek

Sascha Blum wrote:
> Hallo Leute,
>
> ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB große
> SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann würde ich
> gerne wissen wie ich die am besten da importiert bekomme?
>
> Mit phpmyadmin habe ich es bereits versucht alle anderen Tabellen gingen
> problemlos nur die eine macht Probleme weil das da irgendwie in phpmyadmin
> wohl auf 2 MB Dateien begrenzt ist. Shell-Zugriff habe ich keinen auf den
> Server. Muss also irgendwie über PHP oder so laufen ...

Die Begrenzung dürfte eher in PHP selbst liegen, schau mal nach der
Konfiguration was da so als Limits gesetzt ist.

Ansonsten kannst Du natürlich auch das machen, was PHPmyadmin machen
täte - die Queries selbst an die Datenbank senden. Teil das Ding auf in
Daten und Layout, erstelle erst die notwendige Tabelle aus dem Layout,
speicher dann die puren Inserts in einem Textfile, lade das hoch und
iteriere darüber, pro Zeile einen query schickend. Müsste funktionieren.

Oder Du lässt Dein Skript per exec() mysql aufrufen und pipest das ganze
dann dahin, so wie wenn Du einen restore von der Shell aus machen würdest.

Re: Große SQL-Datei in MySQL imp

am 02.02.2007 11:13:46 von Dennis Nissen

Hi,

kannst du die Daten aus der Tabelle, die nicht einwandfrei übernommen wird,
als CSV exportieren ?
Dann besteht die Möglichkeit das ganze mit LOAD DATA zu importieren - da
brauchst du dann nur den Pfad zu deinem
Verzeichnis auf dem Server.

http://www.little-idiot.de/mysql/mysql-121.html

Gruß

Dennis

"Sascha Blum" schrieb im Newsbeitrag
news:eptl89$k4r$02$1@news.t-online.com...
> Hallo Leute,
>
> ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB
> große
> SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann würde
> ich
> gerne wissen wie ich die am besten da importiert bekomme?
>
> Mit phpmyadmin habe ich es bereits versucht alle anderen Tabellen gingen
> problemlos nur die eine macht Probleme weil das da irgendwie in phpmyadmin
> wohl auf 2 MB Dateien begrenzt ist. Shell-Zugriff habe ich keinen auf den
> Server. Muss also irgendwie über PHP oder so laufen ...
>
> Wäre super wenn das möglich wäre. Besten Dank vorab.
>
> Viele Grüße
>
> Sascha

Re: GroßeSQL-Datei in MySQL importieren?

am 02.02.2007 11:34:30 von Stefan Kuhn

Am Thu, 01 Feb 2007 23:31:53 +0100 schrieb Sascha Blum:

> nunja erst ein create um eine Tabelle anzulegen und danach unendlich viele
> Zeilen von einem insert ...

> das kann ja mehr als heiter werden bei sovielen Zeilen ... :-(

Wenn es sauber erstellt ist, steht jede Zeile für eine Query, oder?

Probier es doch dann mal mit "split" unter Linux.

Viele Grüsse
Stefan

Re: GroßeSQL-Datei in MySQL importieren?

am 02.02.2007 11:37:08 von Stefan Kuhn

Am Fri, 2 Feb 2007 11:34:30 +0100 schrieb Stefan Kuhn:

P.S. Ich glaube übrigens auch eher, dass die Begrenzung bei PHP liegt.

Wie gross ist den "upload_max_filesize" in deiner php.ini? Wenn nicht
ändere ihn doch einmal mit ini_set auf 8M.

Re: GroßeSQL-Datei in MySQL importieren?

am 02.02.2007 12:35:45 von Sascha Blum

Hallo,

Stefan Kuhn wrote:

> Am Fri, 2 Feb 2007 11:34:30 +0100 schrieb Stefan Kuhn:
>
> P.S. Ich glaube übrigens auch eher, dass die Begrenzung bei PHP liegt.
>
> Wie gross ist den "upload_max_filesize" in deiner php.ini? Wenn nicht
> ändere ihn doch einmal mit ini_set auf 8M.

in die php.ini selbst kann ich nicht reinschaun, weil ich keinen direkten
Server-Zugriff sogesehen habe, also kein Shell oder so, ist nur praktisch
nen Webhosting-Paket sogesehen. Aber ich kann dir sagen was phpinfo dazu
sagt, das müste ja letztendlich auf das zutreffen was dort drin steht.

Und dort steht bei phpinfo:

upload_max_filesize 16M 16M

Sollte ja wohl dann mit einer etwa 4,4 MB großen Datei kein Problem sein
oder? Sofern diese 16 M da 16 MB entsprechen würden ...

Viele Grüße

Sascha

Re: Große SQL-Datei in MySQL importieren?

am 02.02.2007 13:24:07 von Joerg Behrens

Sascha Blum schrieb:
> Hallo,
>
> Stefan Kuhn wrote:
>
>> Am Fri, 2 Feb 2007 11:34:30 +0100 schrieb Stefan Kuhn:
>>
>> P.S. Ich glaube übrigens auch eher, dass die Begrenzung bei PHP liegt.
>>
>> Wie gross ist den "upload_max_filesize" in deiner php.ini? Wenn nicht
>> ändere ihn doch einmal mit ini_set auf 8M.
>
> in die php.ini selbst kann ich nicht reinschaun, weil ich keinen direkten
> Server-Zugriff sogesehen habe, also kein Shell oder so, ist nur praktisch
> nen Webhosting-Paket sogesehen. Aber ich kann dir sagen was phpinfo dazu
> sagt, das müste ja letztendlich auf das zutreffen was dort drin steht.
>
> Und dort steht bei phpinfo:
>
> upload_max_filesize 16M 16M
>
> Sollte ja wohl dann mit einer etwa 4,4 MB großen Datei kein Problem sein
> oder? Sofern diese 16 M da 16 MB entsprechen würden ...

Pruefe auch Max_Post_Size oder wie es hies.

Dann sind dann noch Max_Request_Body vom Apache selber bzw. des Proxys
und noch die Grenze welche man im HTML Form setzen kann.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Würzburg 6940 http://www.takenet.de

Re: GroßeSQL-Datei in MySQL importieren?

am 02.02.2007 14:21:46 von Sascha Blum

Hallo,

Joerg Behrens wrote:

> Sascha Blum schrieb:
>> Hallo,
>>
>> Stefan Kuhn wrote:
>>
>>> Am Fri, 2 Feb 2007 11:34:30 +0100 schrieb Stefan Kuhn:
>>>
>>> P.S. Ich glaube übrigens auch eher, dass die Begrenzung bei PHP liegt.
>>>
>>> Wie gross ist den "upload_max_filesize" in deiner php.ini? Wenn nicht
>>> ändere ihn doch einmal mit ini_set auf 8M.
>>
>> in die php.ini selbst kann ich nicht reinschaun, weil ich keinen direkten
>> Server-Zugriff sogesehen habe, also kein Shell oder so, ist nur praktisch
>> nen Webhosting-Paket sogesehen. Aber ich kann dir sagen was phpinfo dazu
>> sagt, das müste ja letztendlich auf das zutreffen was dort drin steht.
>>
>> Und dort steht bei phpinfo:
>>
>> upload_max_filesize 16M 16M
>>
>> Sollte ja wohl dann mit einer etwa 4,4 MB großen Datei kein Problem sein
>> oder? Sofern diese 16 M da 16 MB entsprechen würden ...
>
> Pruefe auch Max_Post_Size oder wie es hies.
>
> Dann sind dann noch Max_Request_Body vom Apache selber bzw. des Proxys
> und noch die Grenze welche man im HTML Form setzen kann.

Ich kann zwar kein Max_Post_Size bieten, aber vielleicht tut es auch ein:

post_max_size 8M 8M

:-) - müste ja dann wohl auch noch ausreichen für nen 4,4 MB File.

Dann könnte ich noch anbieten:

memory_limit 32M 32M

Liefert phpinfo mir das Max_Request_Body vom Apache selber bzw. des Proxys
auch irgendwo kann so auf ersten Blick nichts erkennen. In welcher Ecke
muss man da normalerweise das finden? Oder wie finde ich das noch heraus?

Viele Grüße

Sascha

Re: Große SQL-Datei in MySQL importieren?

am 02.02.2007 15:45:53 von Joerg Behrens

Sascha Blum schrieb:
> Hallo,
>
> Joerg Behrens wrote:
>
>> Sascha Blum schrieb:
>>> Hallo,
>>>
>>> Stefan Kuhn wrote:
>>>
>>>> Am Fri, 2 Feb 2007 11:34:30 +0100 schrieb Stefan Kuhn:
>>>>
>>>> P.S. Ich glaube übrigens auch eher, dass die Begrenzung bei PHP liegt.
>>>>
>>>> Wie gross ist den "upload_max_filesize" in deiner php.ini? Wenn nicht
>>>> ändere ihn doch einmal mit ini_set auf 8M.
>>> in die php.ini selbst kann ich nicht reinschaun, weil ich keinen direkten
>>> Server-Zugriff sogesehen habe, also kein Shell oder so, ist nur praktisch
>>> nen Webhosting-Paket sogesehen. Aber ich kann dir sagen was phpinfo dazu
>>> sagt, das müste ja letztendlich auf das zutreffen was dort drin steht.
>>>
>>> Und dort steht bei phpinfo:
>>>
>>> upload_max_filesize 16M 16M
>>>
>>> Sollte ja wohl dann mit einer etwa 4,4 MB großen Datei kein Problem sein
>>> oder? Sofern diese 16 M da 16 MB entsprechen würden ...
>> Pruefe auch Max_Post_Size oder wie es hies.
>>
>> Dann sind dann noch Max_Request_Body vom Apache selber bzw. des Proxys
>> und noch die Grenze welche man im HTML Form setzen kann.
>
> Ich kann zwar kein Max_Post_Size bieten, aber vielleicht tut es auch ein:
>
> post_max_size 8M 8M
>
> :-) - müste ja dann wohl auch noch ausreichen für nen 4,4 MB File.
>
> Dann könnte ich noch anbieten:
>
> memory_limit 32M 32M
>
> Liefert phpinfo mir das Max_Request_Body vom Apache selber bzw. des Proxys
> auch irgendwo kann so auf ersten Blick nichts erkennen. In welcher Ecke
> muss man da normalerweise das finden? Oder wie finde ich das noch heraus?

Auf diese Infos kann PHP logischerweise nicht zugreifen. Schau halt mal
in das Array $_FILES rein. Gibt doch sogar Error Codes zum Thema.

Kommt der Abruch sofort oder erst nach einer Zeit beim Upload? Wenn
ersteres der Fall ist dann ist der Browser schuld bzw. ein dem Browser
sehr naher Server.

Wenn der Abruch spaeter kommt ist die Ursache bei PHP zusuchen. Wann
der Apache zu schlaegt weis ich nicht. Haengt davon ab ob der Browser
die Filesize vorab uebermittelt... was er mit Content-Length IMHO
vohrher auch macht.

Somit kann auch ein Apache/Proxy schnell ablehnen an dieser stelle. Die
frage ob im error.log des Apachen dann etwas stehen muesste.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Würzburg 6940 http://www.takenet.de

Re: GroßeSQL-Datei in MySQL importieren?

am 02.02.2007 15:57:38 von Sascha Blum

Hallo,

Joerg Behrens wrote:

>>>>> P.S. Ich glaube übrigens auch eher, dass die Begrenzung bei PHP liegt.
>>>>>
>>>>> Wie gross ist den "upload_max_filesize" in deiner php.ini? Wenn nicht
>>>>> ändere ihn doch einmal mit ini_set auf 8M.
>>>> in die php.ini selbst kann ich nicht reinschaun, weil ich keinen
>>>> direkten Server-Zugriff sogesehen habe, also kein Shell oder so, ist
>>>> nur praktisch nen Webhosting-Paket sogesehen. Aber ich kann dir sagen
>>>> was phpinfo dazu sagt, das müste ja letztendlich auf das zutreffen was
>>>> dort drin steht.
>>>>
>>>> Und dort steht bei phpinfo:
>>>>
>>>> upload_max_filesize 16M 16M
>>>>
>>>> Sollte ja wohl dann mit einer etwa 4,4 MB großen Datei kein Problem
>>>> sein oder? Sofern diese 16 M da 16 MB entsprechen würden ...
>>> Pruefe auch Max_Post_Size oder wie es hies.
>>>
>>> Dann sind dann noch Max_Request_Body vom Apache selber bzw. des Proxys
>>> und noch die Grenze welche man im HTML Form setzen kann.
>>
>> Ich kann zwar kein Max_Post_Size bieten, aber vielleicht tut es auch ein:
>>
>> post_max_size 8M 8M
>>
>> :-) - müste ja dann wohl auch noch ausreichen für nen 4,4 MB File.
>>
>> Dann könnte ich noch anbieten:
>>
>> memory_limit 32M 32M
>>
>> Liefert phpinfo mir das Max_Request_Body vom Apache selber bzw. des
>> Proxys auch irgendwo kann so auf ersten Blick nichts erkennen. In welcher
>> Ecke muss man da normalerweise das finden? Oder wie finde ich das noch
>> heraus?
>
> Auf diese Infos kann PHP logischerweise nicht zugreifen. Schau halt mal
> in das Array $_FILES rein. Gibt doch sogar Error Codes zum Thema.
>
> Kommt der Abruch sofort oder erst nach einer Zeit beim Upload? Wenn
> ersteres der Fall ist dann ist der Browser schuld bzw. ein dem Browser
> sehr naher Server.
>
> Wenn der Abruch spaeter kommt ist die Ursache bei PHP zusuchen. Wann
> der Apache zu schlaegt weis ich nicht. Haengt davon ab ob der Browser
> die Filesize vorab uebermittelt... was er mit Content-Length IMHO
> vohrher auch macht.
>
> Somit kann auch ein Apache/Proxy schnell ablehnen an dieser stelle. Die
> frage ob im error.log des Apachen dann etwas stehen muesste.

der Abbruch kommt erst einige Zeit später ...

.... tja was die error.log angeht, das wird wohl denk ich mal nichts. Darauf
hab ich doch keinen Zugriff, ist doch ein Webhosting-Paket sozusagen, da
glaube ich kaum das ich mal eben in die error.log da schaun kann und darf.

Viele Grüße

Sascha

Re: Große SQL-Datei in MySQL importieren?

am 02.02.2007 16:27:47 von Michael Fesser

..oO(Sascha Blum)

>ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB große
>SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann würde ich
>gerne wissen wie ich die am besten da importiert bekomme?

Mit Kommandozeile 'ne Kleinigkeit und nur eine Frage von Sekunden ...

>Mit phpmyadmin habe ich es bereits versucht alle anderen Tabellen gingen
>problemlos nur die eine macht Probleme weil das da irgendwie in phpmyadmin
>wohl auf 2 MB Dateien begrenzt ist. Shell-Zugriff habe ich keinen auf den
>Server. Muss also irgendwie über PHP oder so laufen ...

Host wechseln? Was ist mit exec() und Co.?

Micha

Re: Große SQL-Datei in MySQL imp

am 02.02.2007 23:01:30 von Dennis Nissen

Haste das mal ausprobiert ? ---
"Dennis Nissen" schrieb im Newsbeitrag
news:epv2su$q7k$1@online.de...
> Hi,
>
> kannst du die Daten aus der Tabelle, die nicht einwandfrei übernommen
> wird,
> als CSV exportieren ?
> Dann besteht die Möglichkeit das ganze mit LOAD DATA zu importieren - da
> brauchst du dann nur den Pfad zu deinem
> Verzeichnis auf dem Server.
>
> http://www.little-idiot.de/mysql/mysql-121.html
>
> Gruß
>
> Dennis
>
> "Sascha Blum" schrieb im Newsbeitrag
> news:eptl89$k4r$02$1@news.t-online.com...
>> Hallo Leute,
>>
>> ich habe gerade ein Problem: Ist es möglich irgendwie eine ca. 4,4 MB
>> große
>> SQL-Datei in eine MySQL Datenbank zu importieren und wenn ja dann würde
>> ich
>> gerne wissen wie ich die am besten da importiert bekomme?
>>
>> Mit phpmyadmin habe ich es bereits versucht alle anderen Tabellen gingen
>> problemlos nur die eine macht Probleme weil das da irgendwie in
>> phpmyadmin
>> wohl auf 2 MB Dateien begrenzt ist. Shell-Zugriff habe ich keinen auf den
>> Server. Muss also irgendwie über PHP oder so laufen ...
>>
>> Wäre super wenn das möglich wäre. Besten Dank vorab.
>>
>> Viele Grüße
>>
>> Sascha
>

Re: GroßeSQL-Datei in MySQL importieren?

am 03.02.2007 00:54:32 von Sascha Blum

Hallo,

Dennis Nissen wrote:

>> "Dennis Nissen" schrieb im Newsbeitrag
>> news:epv2su$q7k$1@online.de...

>> kannst du die Daten aus der Tabelle, die nicht einwandfrei übernommen
>> wird,
>> als CSV exportieren ?
>> Dann besteht die Möglichkeit das ganze mit LOAD DATA zu importieren - da
>> brauchst du dann nur den Pfad zu deinem
>> Verzeichnis auf dem Server.
>>
>> http://www.little-idiot.de/mysql/mysql-121.html

> Haste das mal ausprobiert ?

sorry ich kam zeitlich leider noch nicht dazu ...

.... muß zudem erstmal nachforschen wie ich das in PHP einbinde und so.

Wird nen kleinen moment noch dauern ...

Viele Grüße

Sascha

Re: Große SQL-Datei in MySQL importieren?

am 04.02.2007 18:44:44 von Kai Koenig

Hallo Sascha,

> der Abbruch kommt erst einige Zeit später ...

Vielleicht so ca. 30 Sekunden?

max_execution_time bei PHP-Standard-ini.

VG

Kai