![]() |
Jag ska flytta all mysql-data från en server till en annan (winxp på båda).
Jag tog en fil som hette ibdata1 från en katalog vid namn "MySQL Datafiles" och kopierade till nya servern. Värt att nämna är att det säkert inte är samma version av mysql på servrarna, men det hela borde gå at lösa ändå tycker man. I datakatalogen på nya disken fanns en fil vid samma namn som var betydligt mindre än den gamla, precis som jag hade väntat mig då nya databasen var i princip tom. Jag ersatte filen och till min förvåning så visar phpmyadmin fortfarande precis samma sak som förr, så den filen måste ha varit fel. Hur ska man göra? Det är alltså säkert 20-30 databaser så det vore skönt att bara över allt i en klump. |
Gör det rätt ;) Smidigast är väl att du endast använder mysqldump eller något för exportera alla databaser och importera sedan bara.
Du kan även använda phpmyadmin för det, att manuelt kopiera datafilerna brukar vara en dålig lösning om man inte har koll på vad man håller på med. |
phpmyadmin ville inte ta emot så stora filer... Men det går väl att ställa in någonstans... Bara jag inte måste rocka om i inställningarna både i phpmyadmin och i php-inställningarna. Jag tyckte att det vore så lätt att bara kopiera datafilerna, men det kanske inte fungerar så på riktigt, men jag föreställde mig att det var skitenkelt eftersom jag antog att all data låg i den filen.
jag ska googla å kolla vad mysqldump är och hur det används. Jag kan egentligen inte ett skit om server-admin-stuff. :) |
Är normalt i PHP du ställer in storleken på filerna du kan ladda upp, men du kan ju lika väl använda mysql cli för att läsa tillbaka export filen sedan.
|
När du väl exporterat filerna så kan du använda dig av http://www.ozerov.de/bigdump.php.. Det har jag använt mig utav och det fungerade kanon.. Du kan läsa lite om hur du ska göra här: http://drupal.org/node/43024
Det är väldigt enkelt och fungerade som sagt ypperligt för mig! Databasen jag skulle importera var kring gigabyten stor har jag för mig |
Vid närmare eftertanke... Det går alltså inte att importera en sån ibdata1-fil? För ursprungsservern är nu utan operativsystem - men jag har tillgång till hela mysql-katalogen, hela disken för den delen. Det vore praktiskt om det bara gick att rycka över en del filer och antingen bara ersätta, eller om man kan extrahera infon ur filerna och importera sedan. Det är bara 26 mb för den delen då det är lokala testgrejer - som dock skulle ta lång tid att trolla tillbaka för hand.
Men det kanske går att expoertera ändå, trots att den mysqlkatalogen från gamla servern jag har inte har en startad mysqlprocess? Jag är ju som sagt helt lost på servertekniska grejer samt att jag trött och irriterad.. Men det går nog snart över. :) Tack för hjälpen iaf. |
Testa att bara kopiera filerna från server a till server b och starta om MySQL tjänsten på server b. Jag har själv gjort det vid ett tillfälle och otroligt nog så känner MySQL av att det kommit in nya kataloger (dvs databaser) i databiblioteket och börjar använda den.
Jag har endast testat detta från Win MySQL4.x till en Win MySQL5.x, men eftersom MySQL verkar ha en väldigt enkel metadatahantering av databaser (=katalog på hårdisken) så är det nog värt ett försök för dig också. Edit ser att du provat detta - men kanske glömde du omstart av tjänsten ? |
Jag körde med MySQL Migration Toolkit och det är smidigt enkelt och snabbt,
kolla på mysql.com |
Jag brukar använda detta script:
http://www.cryptonsystems.com/mirrorizer/ Då brukar jag slippa timeout problem och att hålla på och mellanlagra data. Det kräver dock att minst en av servrarna tillåter anslutningar till mysql servern utifrån. |
|
nä, jag glömde inte starta om servicen när jag förde över filen. Dock kanske det krävs fler filer än den, men den var den enda som fanns i datamappen.
Men det är ingen som vet något annat knep när man endast har filerna utan ett exekverbart mysql? :) Det var ett misstag att anta att det var så lätt som jag trodde, men orka lägga in operativsystem bara för att göra en export via mysql. Systementor - hade du flera filer eller bara en som du flyttade? |
Om du ska flytta alla databaser du har på en server till en annan utan att något ska läggas till eller tas bort så är det bara att kopiera den mapp som innehåller alla databaser. Se bara till att sökvägen är exakt likadan på båda servrarna. I annat fall ställer du om sökvägen i my.ini. Leta rätt på raden där det står "datadir=" och ställ in sökvägen. Du har även en rad med "innodb_data_home_dir=" som du behöver ställa in. Starta sedan om servern.
Jag förmodar att du redan har installerat MySQL på den nya servern. De mappar som användas där för databaserna "datadir" kan du inte använda dig av längre. Döp om den mappen och ersätt från din andra server. Tänk på att databasen mysql innehåller information om alla dina databaser; lösenord, tabeller, åtkomsträttigheter osv. |
tack tack - nu är du inne på min linje!
Grejen var bara att det bara var en enda datafil på gamla servern och flera på nya... Så det verkade skita sig ändå. Just nu har jag lagt ned projektet att rädda gammal data och har börjat samla ihop lite nytt för det jag har behövt. Vi får se om jag gör ett nytt försök sen. :) Tack iaf! |
Varför inte bara göra det enkelt och rätt? patricweb och elprisguiden var ju inne på rätt spår. Om man trycker output från mysqldump till mysql på en *nixmaskin behöver man inte ens lägga tid på att kopiera filer mellan maskinerna.
Bara för att det finns många avancerade speciallösningar till ett problem inom webbranchen betyder det inte att det faktiskt finns ett problem........ :) |
problemet är alltså att det inte finns något operativsystem eller fungerande mysql på källburken utan hårddisken är bara utplockad å satt i annan burk. Jag vet inte varför ingen har greppat det trots att jag sagt det ett par gånger. :)
Eller så menar någon att det inte är ett problem, det kanske går att anropa mysql.exe eller vad den heter ändå och göra en dump - men jag förutsatte att det inte skulle räcka. |
Citat:
Jag har gjort det själv så jag vet att det är lätt. |
nä, disken nämnde jag inte - men att det inte fanns något OS i aktuell burk har jag sagt. :)
Jaja, end of story. hihi Men stort tack för infon! |
Citat:
Om du inte är 100 på att kopieringen av filerna blir korrekt (manualen för mysqlhotcopy borde tala om vad man bör tänka på), kan du alltid starta upp mysql i ro-läge efter kopieringen, köra en mysqldump, initiera ett nytt dataset och sedan trycka in dumpen i det nya dataset:et. Då är du säker på att det blir rätt så länge du får ur den dumpen utan att den skriker. |
Zippa ihop *alla* databasrelaterade filer från hårddisken och skicka den till nån av oss så läser vi ut en mysqldump i textformat åt dig alternativt i MyISAM-format.
ibdata* är innodb-datafiler. Kolla att innodbvärderna är samma på den nya databasemaskinen som den gamla (såvida autoextend inte löser det). Jag kan göra det gratis åt dig. |
Citat:
|
Ja det var fyndigt, ska tänka på det nästa gång jag försöker hjälpa någon.
Trist. |
mysqldump -u user -p database > dump.sql
*then do the magic import* |
Alla tider är GMT +2. Klockan är nu 17:00. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson