Toon posts:

[MySQL] snelle manier database van host verhuizen?

Pagina: 1
Acties:
  • 137 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Heyho,

Een maat van mij is niet tevreden met zijn host, en gaat daar dus weg. Hij gaat hem nu op gewoon gratis op een server van mij hosten. Hij heeft dus zn gehele database van zn forum gebackupped, en dat is nu een 190mb grote .sql file. Nu wil ik die inladen in phpmyadmin op mijn server, maar volgensmij werkt dit niet? Of is er misschien een snelle en makkelijke manier? Ik heb al geprobeert om gewoon alle content van het .sql bestand te copy pasten in het query gedeelte in phpmyadmin, maar dan komt er geen text te staan, omdat het te groot is waarschijnlijk.
Ook heb ik al via de methode dattie het zelf uit de sql leest gedaan, maar daar is die nu al uren mee bezig, en naast de lijn met het path + bladeren staat ook: "(Max: 51,200KB)", dus ik denk dat dit ook niet gaat werken.. Ik kan ook helemaal geen progress zien als ik op "start" druk na dat .sql bestand te hebben geselecteerd, dus ik weet ook niet eens of die uberhaupt nog wel bezig is en wat doet.
Ik heb ook geprobeert om het .sql bestand gewoon in stukjes van 50mb te delen, maar dit lukt ook niet.

Daarom wou ik vragen of iemand misschien een snelle, makkelijke en goede manier weet om een database van 190mb op me host te zetten.


Alvast bedankt!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 17:11
Met MySQL Front connecten naar de database en dan de .sql uploaden.

Verwijderd

Topicstarter
Dit zal vast wel basiskennis zijn, maar ik vraag het toch even voor de zekerheid:
Wat moet ik invullen bij server?? Want als ik daar gewoon http://aduro.netlogistics.com.au/ invul(de server), dan zegttie

---------------------------
Fout
---------------------------
Netwerkprobleem: Host "http://aduro.netlogistics.com.au/" kan niet gevonden worden.
---------------------------
OK
---------------------------

Username/password enzenz heb ik al ingesteld, hij kan hem gewoon niet vinden. Moet ik wat speciaals doen ofzo?

Moet ik nog rekening houden met poorten ofzo?

[ Voor 18% gewijzigd door Verwijderd op 21-10-2005 19:04 ]


  • LXXI
  • Registratie: Augustus 2001
  • Niet online
Denk dat phpmyadmin een timeout gaat geven. Je kunt beter de DB uploaden naar je server, en dan met SSH de DB toevoegen met: mysql database < backup-file.sql

Verwijderd

Topicstarter
Kun me dat misschien even iets specifieker uitleggen? Wat is ssh precies? en welke query moet ik daarvoor gebruiken?

Verwijderd

Topicstarter
Ik heb even met de eigenaar van de server gesproken, maar hij zegt dat ssh niet aanstaat, maar dat het ook via een sql query kan.. Ik ben het bestand nu aan het uploaden, ondertussen zoek ik zelf wel even op google hoe het moet met een sql query maar als iemand het antwoord ook weet en het wil posten mag dat natuurlijk ook :)


in ieder geval al bedankt voor de hulp.

  • defusion
  • Registratie: Juli 2003
  • Niet online
Ik denk dat hij bedoelt dat ie ergens anders host, dit gezien het kennis niveau.
Ik denk dat de oplossing met dat mysql front de beste is.
Maar als host moet je niet de site met http:// gebruiken, maar de gewone hostname.
dus aduro.netlogistics.com.au in jouw geval. Tenminste, ik neem aan dat dat de server is waar je het naartoe wilt hebben?

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

code:
1
mysql -u<username> -p -h<host> --database=<database> < <sqlfile>.sql


Phpmyadmin doet er jaren over voordat het er in staat; de shell methode is een stuk rapper.

Uiteraard wel uitvoeren op de server zelf, niet vanaf je desktop machine.

[ Voor 27% gewijzigd door GX op 21-10-2005 19:39 ]


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 21-08 23:34
Het zo helemaal mooi zijn als deze vriend de mysql/data directory van zn oude host zou kunnen krijgen. Deze kun jij dan gewoon in jouw data-dir plakken (mits er geen dubbele database namen zijn).

Bestanden van 190MB uploaden gaat natuurlijk niet werken, even min als textvakken met 190MB aan karakters :)
Hij zou ook 2 SQL's kunnen maken, 1 van alle tabel structuren (de create tables) en 1 met alle waades uit de database. Dat waardes SQLetje moet je wel op kunnen knippen in kleinere bestanden (van 2MB :X)

Als bovenstaande methode zou werken zou dat helemaal ideaal zijn.
Mocht je geen shell-toegang hebben tot de server kun je dit waarschijnlijk ook vanuit php uitvoeren met passthru();

[ Voor 16% gewijzigd door frickY op 21-10-2005 19:44 ]


Verwijderd

Topicstarter
Oh, ik zie nu allemaal andere dingen, maar ik heb het .sql bestand van 190mb al geupload... Hoe kan ik het dan nou het beste doen? Ik ben nu namelijk niet meer thuis, maar heb wel nog toegang tot me server. })

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Dit heeft niets met P&W te maken; het is gewoon werken met MySQL.
P&W -> SA

https://fgheysels.github.io/


Verwijderd

Topicstarter
Trouwens als ik met mysql-front inlog krijg ik:

---------------------------
Fout
---------------------------
Er is een fout opgetreden bij het uitvoeren van de query

Error 1130 - Host 'Mijn.hostname.hier' is not allowed to connect to this MySQL server
---------------------------
OK
---------------------------

Moet ik iets doen op de server?

Verwijderd

Topicstarter
whoami schreef op vrijdag 21 oktober 2005 @ 21:29:
Dit heeft niets met P&W te maken; het is gewoon werken met MySQL.
P&W -> SA
De beschrijving van dit forum luid toch niet voor niets:
Het programmeer en webscripting forum bij uitstek voor echte applicaties, PHP, MySQL, ASP, etc. Allemaal hele koele dingen, maar niet altijd even makkelijk. Als je er zelf niet meer uitkomt: hier zitten de experts.
Ik moet namelijk de query weten om de .sql file in me database te gooien, das toch eerder scripting dan software algemeen? Maja ik ga maar niet tegen de modjes in omdat dat meestal tog alleen maar verkeerde dingen opleverd :P Maar vond het beetje rare beslissing. Maar als jij denkt dat het de goede beslissing is, dan respect voor dat.

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Verwijderd schreef op vrijdag 21 oktober 2005 @ 21:34:
Ik moet namelijk de query weten om de .sql file in me database te gooien, das toch eerder scripting dan software algemeen?
Die staat in de MySQL manual.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Verwijderd schreef op vrijdag 21 oktober 2005 @ 21:34:
[...]


De beschrijving van dit forum luid toch niet voor niets:


[...]


Ik moet namelijk de query weten om de .sql file in me database te gooien, das toch eerder scripting dan software algemeen? Maja ik ga maar niet tegen de modjes in omdat dat meestal tog alleen maar verkeerde dingen opleverd :P Maar vond het beetje rare beslissing. Maar als jij denkt dat het de goede beslissing is, dan respect voor dat.
Het gaat hier om de software waarmee je het doet, én he tis geen query, maar een commando die je dient uit te voeren op de shell met behulp van de mysqlclient software, of andere 3rd party meuk die je er voor gebruiken wilt.

Het antwoord is overigens al uitvoerend gegeven. (vergeet mysql-front ajb als je 190 mb aan rauwe data wilt gaan importeren).

Verwijderd

Topicstarter
Ik gebruik nu dit php script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php


$dbh=mysql_connect ("localhost", "USERNAME", "PASSWORD") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("DATABASENAAM");


set_time_limit( 0 );

$handle = @fopen("BESTAND.sql", "r");

if ($handle)
{
    $i = 0;
    while (!feof($handle))
    {
        $buffer = fgets($handle, 4096);
        mysql_query($buffer);
        if ($i > 50)
        {
            echo ".";
            $i = 0;
        }
        else
        {
            $i++;
        }
    }
    fclose($handle);
}
?>


Om de 50 gelezen regels zet hij een . neer, zodat ik kan zien dat hij het leest en iets doet. Maar hij doet niets. Wel krijg ik een page met tigduizend puntjes, dus hij leest het bestand wel, maar de database blijft gewoon leeg. Ziet iemand de fout?

[ Voor 8% gewijzigd door Verwijderd op 22-10-2005 19:31 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
mysql_query($buffer);
vervangen naar:
mysql_query($buffer) or die(mysql_error());

Je krijgt dan een foutmelding als je query mislukt, en daaruit kun je weer verder zoeken.

  • Baxlash
  • Registratie: Juni 2000
  • Niet online

Baxlash

Its a boy Genius!

Ik denk dat het nu wel weer meer richting programmeren gaat.

Maar ik heb het vermoeden dat het komt omdat je 4096 bytes inleest per cycle, en deze ook direct uitvoert in een query. Hierdoor krijg je bij langere regels halve query's die je probeert te verwerken. Probeer eens een hele regel in te lezen ipv per aantal bytes.

Ook kan je even een error handler bij je mysql_query maken zodat je een terugmelding van fouten krijgt.

Verwijderd

Topicstarter
Query error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '--' at line 1

Dat is de fout die ik krijg, het ligt dus aan de -- manier om stukken uit te commenten. Hoe kan ik dit omzeilen? Of moet ik gewoon overal die -- weg gaan halen?

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op zaterdag 22 oktober 2005 @ 19:44:
Query error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '--' at line 1

Dat is de fout die ik krijg, het ligt dus aan de -- manier om stukken uit te commenten. Hoe kan ik dit omzeilen? Of moet ik gewoon overal die -- weg gaan halen?
Daar heeft PHP een if-statement voor ;)

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 10:30

TheBorg

Resistance is futile.

system("mysqldump whatever < thefile.sql");
Gaat veeeel snellen. Werkt alleen niet bij PHP in safemode.

Anders staat hier een leuke tut om de -- te strippen: http://www.phpfreaks.com/...ump-Import-Script/580.php

[ Voor 23% gewijzigd door TheBorg op 22-10-2005 19:55 ]


Verwijderd

Topicstarter
TheBorg schreef op zaterdag 22 oktober 2005 @ 19:54:
system("mysqldump whatever < thefile.sql");
Maar dat is tog via ssh/telnet? Want dat staat nie aan op de server.


Die url check ik nu even.

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 10:30

TheBorg

Resistance is futile.

Je voert een command uit via een shell, daar heb je geen SSH voor nodig.

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 30-07 19:50

PowerSp00n

There is no spoon

Gebruik dan gewoon een bestaand script. Bijvoorbeeld http://www.absoft-my.com/pondok/backup.php. Zo zijn er nog vele andere te vinden.

Verwijderd

Topicstarter
TheBorg schreef op zaterdag 22 oktober 2005 @ 20:00:
Je voert een command uit via een shell, daar heb je geen SSH voor nodig.
Ja maar daar heb ik geen toegang tot. Anywayz ik heb dat script gebruikt die jij eerder gaf op die website, maar dan krijg een page helemaal vol met al die text van die .sql file. Wel zonder die -- overigens hehe :) Maja hoe krijg ik ze nu in die database?

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 10:30

TheBorg

Resistance is futile.

Ik zou je database nog eens bekijken. ;)
Ik zou ook wat echo's weghalen, dat gaat een stuk sneller.

Verwijderd

Topicstarter
PowerSp00n schreef op zaterdag 22 oktober 2005 @ 20:01:
Gebruik dan gewoon een bestaand script. Bijvoorbeeld http://www.absoft-my.com/pondok/backup.php. Zo zijn er nog vele andere te vinden.
Ligt het aan mij of kan ik geen link vinden om hem te downen/bekijken?


edit: nevermind. Ik ga hem nu even proberen.

[ Voor 8% gewijzigd door Verwijderd op 22-10-2005 20:20 ]


Verwijderd

Topicstarter
Ok ik krijg eindelijk content in de database met dat script, maar wel tig syntax errors. Lijkt mij dat het dan niet goed gaat en dattie niet alles goed erin zet?

  • n3ck
  • Registratie: Mei 2002
  • Laatst online: 24-06 14:26
kun je niet gewoon die hele zooi eruit trekken met select queries en dan die weer inserten?

  • r0b
  • Registratie: December 2002
  • Laatst online: 11-08 08:11

r0b

Óf je upload even de 190mb SQL file en vraagt je hoster om even de sql via de commandline op de server zelf even in database X te dumpen. Dat lijkt me een stuk sneller dan dat jij vanalles uit moet gaan vinden. :) (Alhoewel dat natuurlijk nooit verkeerd is.)

Verwijderd

Topicstarter
r0b schreef op zaterdag 22 oktober 2005 @ 20:56:
Óf je upload even de 190mb SQL file en vraagt je hoster om even de sql via de commandline op de server zelf even in database X te dumpen. Dat lijkt me een stuk sneller dan dat jij vanalles uit moet gaan vinden. :) (Alhoewel dat natuurlijk nooit verkeerd is.)
Dat heb ik al gedaan, maar gaat allemaal weer viaviaviavia, dus tot die tijd dat de host het nog niet doet probeer ik het zelf.

  • r0b
  • Registratie: December 2002
  • Laatst online: 11-08 08:11

r0b

Dat gaat zeer waarschijnlijk moeilijk worden.

Via een eigen applicatie (MySQL front bijvoorbeeld), krijg je geen verbinding omdat er alleen connecties vanaf localhost toegestaan worden, waarschijnlijk.
Vervolgens moet je een PHP oplossing zoeken, maar je kan weer niet na X tekens afkappen en verder gaan (wegens maximum upload size cq timeout), dus dan moet je weer gaan splitten.

Óf je gaat even een uurtje bezig en split die 190mb SQL file in ~ 50 hapklare brokken van 4mb, om deze vervolgens te importen (aannemende dat je create query bovenaan staat).

Verwijderd

Topicstarter
r0b schreef op zaterdag 22 oktober 2005 @ 21:21:
Dat gaat zeer waarschijnlijk moeilijk worden.

Via een eigen applicatie (MySQL front bijvoorbeeld), krijg je geen verbinding omdat er alleen connecties vanaf localhost toegestaan worden, waarschijnlijk.
Vervolgens moet je een PHP oplossing zoeken, maar je kan weer niet na X tekens afkappen en verder gaan (wegens maximum upload size cq timeout), dus dan moet je weer gaan splitten.

Óf je gaat even een uurtje bezig en split die 190mb SQL file in ~ 50 hapklare brokken van 4mb, om deze vervolgens te importen (aannemende dat je create query bovenaan staat).
met mysql-front is het overigens al gelukt, maar dit duurde 30 uur ofzo :S Dus die heb ik gestopt. Je moet in cpanel je hostname toevoegen voor mysql acces en dan lukt het wel.

Maareh het is uiteindelijk al gelukt met dat script waar ik de laatste vraag over stelde. Ik kreeg wel tig errors, maar hij lijkt alles gewoon goed erin hebben gezet, ik mis niets en alles werkt gewoon.


Dus thanks voor de hulp allemaal.
Pagina: 1