Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Mysql verplaatsen  (gelezen 2342 keer)

Offline chappie

  • Lid
Mysql verplaatsen
« Gepost op: 2012/08/13, 22:43:55 »
Beste Mensen :)

Ik heb mijn mysql lopen op een server. Allemaal leuk en aardig word beheerd met phpmyadmin.  Alleen mijn mysql heeft 10GB op

rootfs
/dev/root
(verkregen via df -h)

Alleen dit loopt met hoog tempo op.

Dus 2 vragen:
Kan ik Mysql de legen databases makelijk verwijderen? Eventueel een script.

Kan ik Mysql verplaatsen? Eventueel van plaats als van server. Is dan de server bestanden in /var/lib/mysql genoeg of moet ik dat via phpmyadmin doen?

Ik heb nog niet zo heel veel ervaring met mysql maar als ik het kwijt ben ben ik aardig de pineut.

Vandaar dat ik hier mijn hulp vraag.

Alvast bedankt! :)

Offline MKe

  • Lid
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #1 Gepost op: 2012/08/14, 16:15:21 »
Nee, je kunt mysql niet verplaatsen door alleen de files te kopieren. Heb ik ervaring en geeft grote problemen. Wat je zou kunnen doen is een dump van elke database in de server naar een file, vervolgens een database met dezelfde naam aanmaken op een nieuwe db-server en die weer vullen met de dump die je net gemaakt hebt.

Om te dumpen naar een file doe het volgende (vervang user door je mysql-root-usernaam en password door je eigen password:
mysqldump--all-databases -uuser -ppassword > dbname.back
Als je de andere server hebt opgezet kun je het volgende doen om de database weer up-en-running te krijgen:
mysql -uuser -ppassword < dbname.back
Probeer het wel eerst uit. Als je het niet vertrouwd kun je een dump per database doen en ze een-voor-een aanmaken op de nieuwe server.

Databases kun je verwijderen in de commandlineinterface van mysql:
drop database databasenaam;Wees er voorzichtig mee, je kunt niet terug.

Meer info:
http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html
« Laatst bewerkt op: 2012/08/14, 16:18:35 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Online vanadium

  • Lid
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #2 Gepost op: 2012/08/14, 16:18:50 »
[edit]iemand was me voor, maar met een andere oplossing. Maak je keuze.[/edit]

Ik ken de details van een msql installatie niet meer, maar het kan volstaan je databasebestanden op een groter datavolume te plaatsen, en dan de directory waar de bestanden stonden te vervangen door een symbolische link naar de nieuwe plaats. Zo hoef je aan je mysql installatie zelf niets te veranderen.

Stel dat je de bestanden onder /var/lib/mysql verplaatst naar een andere partitie, aangekoppeld onder bijvoorbeeld  /media/groteschijf. Dan verplaats je de folder:

sudo mv /var/lib/mysql /media/groteschijf
en je maakt op de oorspronkelijke plaats van de mysql folder een symbolische link aan naar de nieuwe locatie:
sudo ln -s /media/groteschijf/mysql /var/lib/mysql
(wellicht best mysql server stoppen en daarna herstarten terwijl je dit doet.)

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #3 Gepost op: 2012/08/14, 21:15:41 »
MKe,

Bedankt voor je antwoord ik wil binnenkort de gehele database naar een aparte server verplaatsen. Zet ik met jouw commands alle databases terug?

Verder, Hoe kan ik het beste Mysql backuppen. Ik backup nu allen /var/lib/mysql via rsync. Maar naar aanleiding van jouw post werkt dat dus niet.

Vanadium,

Ik kan dus een aparte folder in /home aanmaken (bijvoorbeeld) en die noem ik in dit geval mysql

Worden de commands:

sudo mv /var/lib/mysql /home/mysql

en

sudo ln -s /home/mysql /var/lib/mysql

Klopt dit? Op dit moment zit ik op 90% en 2 dagen geleden op 76% dus het gaat mij iets te snel om een lange downtime te geven en het direct te verplaatsen.



Sorry voor al mijn vragen maar ik ben erg huiverig met mysql omdat ik het persoonlijk niet fijn vind werken. Veelste veel dingen waardoor een connectie kan mislukken. En als ik het kwijt ben ben ik het haasje.

maar wel bedankt voor het antwoorden! :)

Offline MKe

  • Lid
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #4 Gepost op: 2012/08/15, 06:43:03 »
Mijn methode is inderdaad een goede manier om naar een andere server te migreren. Daar is het eigelijk voor bedoeld.  Je kunt het ook voor backup gebruiken. Mysql heeft trouwens een goede documentatie waar je veel van dit soort vragen kunt beantwoorden. Voor backup b.v.: http://dev.mysql.com/doc/refman/5.0/en/backup-methods.html

ik snap dat je zenuwachtig wordt van mysql, maar een goede backup geeft al een veel rustiger gevoel. 

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #5 Gepost op: 2012/08/15, 09:20:04 »
Voor het backuppen van je databases en het verplaatsen daarvan naar een andere server werkt het idee van MKe prima. Wij gebruiken een vergelijkbare manier ook om de databases van Ubuntu NL te backuppen.

Als je op dezelfde server wil blijven, maar dan alleen de locatie van de bestanden wil wijzigen is het idee van Vanadium ook wel aardig, alleen zou ik zelf liever gebruik maken van een bind mount ipv symlinks.
Een bind mount is een klein beetje ingewikkelder dan een symlink, maar het voordeel is dat de verplaatsing geheel transparant is.  MySQL zal nog steeds naar dezelfde dirs en bestanden blijven schrijven, alleen worden ze op een andere plek opgeslagen. Een symlink is een speciaal bestand dat een doorverwijzing naar een andere plek op je computer beschrijft. Hier zouden sommige programma's wat meer moeite mee kunnen hebben.

Stel dat je je databases naar /media/mysql/ zou willen verplaatsen, dan kan je dat zo doen:
sudo -i
service mysql stop
mv /var/lib/mysql /media/
chown mysql:mysql /media/mysql #voor de zekerheid de rechten goed zetten van de nieuwe dir
chmod 0700 /media/mysql #voor de zekerheid de rechten goed zetten van de nieuwe dir
mkdir /var/lib/mysql #oude mysql dir opnieuw aanmaken, rechten goed zetten
chown mysql:mysql /var/lib/mysql
chmod 0700 /var/lib/mysql
echo "/media/mysql /var/lib/mysql none bind"  >> /etc/fstab
mount /var/lib/mysql
service mysql start
exit

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #6 Gepost op: 2012/08/15, 10:15:16 »
Beiden erg bedankt, Ik zal vanacht de command van Johan gebruiken. (Omdat ik geen zin heb in problemen uiteraard :)) Maar ik zal eerst even bezig gaan met een goede backup zoals beschreven door MKe,

Beiden erg bedankt :)

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #7 Gepost op: 2012/08/15, 10:44:32 »
Even een 2e vraagje. Om het voor mij gemakkelijker te maken kan ik niet via phpmadmin -> export en dan de sql file exporteren. En dan op de nieuwe server die sql file weer importeren. Want phpmyadmin heb ik toch nodig.

Zoals ik al zij ik werk liever met mysql op mijn eigen test server en daarvoor is de tijd nu niet beschikbaar. Eventueel backuppen, en dan wat Johan zij. Heb ik voor dit moment in iedergeval een goede backup. (toch?)

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #8 Gepost op: 2012/08/15, 11:38:54 »
Volgens mij heeft phpmyadmin wel een limiet qua grootte van de databases als je ze wil im- of exporteren.
Ik weet verder niet of dat in nieuwere versies ook zo is en of jij daar mee te maken zou kunnen krijgen, dus dat zal je even moeten proberen.
De commando's die hier genoemd zijn werken in ieder geval met databases van enkele gigabytes.

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #9 Gepost op: 2012/08/15, 12:16:23 »
De database file van phpmyadmin is een kleine gb groot. Momenteel zitten alle databases boven de 9gb in totaal.

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #10 Gepost op: 2012/08/17, 02:11:45 »
Voor het backuppen van je databases en het verplaatsen daarvan naar een andere server werkt het idee van MKe prima. Wij gebruiken een vergelijkbare manier ook om de databases van Ubuntu NL te backuppen.

Als je op dezelfde server wil blijven, maar dan alleen de locatie van de bestanden wil wijzigen is het idee van Vanadium ook wel aardig, alleen zou ik zelf liever gebruik maken van een bind mount ipv symlinks.
Een bind mount is een klein beetje ingewikkelder dan een symlink, maar het voordeel is dat de verplaatsing geheel transparant is.  MySQL zal nog steeds naar dezelfde dirs en bestanden blijven schrijven, alleen worden ze op een andere plek opgeslagen. Een symlink is een speciaal bestand dat een doorverwijzing naar een andere plek op je computer beschrijft. Hier zouden sommige programma's wat meer moeite mee kunnen hebben.

Stel dat je je databases naar /media/mysql/ zou willen verplaatsen, dan kan je dat zo doen:
sudo -i
service mysql stop
mv /var/lib/mysql /media/
chown mysql:mysql /media/mysql #voor de zekerheid de rechten goed zetten van de nieuwe dir
chmod 0700 /media/mysql #voor de zekerheid de rechten goed zetten van de nieuwe dir
mkdir /var/lib/mysql #oude mysql dir opnieuw aanmaken, rechten goed zetten
chown mysql:mysql /var/lib/mysql
chmod 0700 /var/lib/mysql
echo "/media/mysql /var/lib/mysql none bind"  >> /etc/fstab
mount /var/lib/mysql
service mysql start
exit

Ik geloof dat het gelukt is, :) Mysql is weer online en het controle paneel werkt tot zover nog naar behoren :)

Kun je mij een keer een snelle kleine uitleg geven van alles wat je gedaan heb. En dan met name dit gedeelte:

echo "/media/mysql /var/lib/mysql none bind"  >> /etc/fstab
mount /var/lib/mysql

Als je geen tijd/zin hebt is dat geen probleem, ben allang blij dat het nu weer werkt ;)

Allemala bedankt voor jullie hulp! :)

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #11 Gepost op: 2012/08/17, 07:34:38 »
echo "/media/mysql /var/lib/mysql none bind"  >> /etc/fstabDit voegt een regel toe aan /etc/fstab. Dat is korter dan de uitleg om het via gedit/nano/een andere text editor te doen.

mount /var/lib/mysqlDit commando koppelt de bind mount die je net in /etc/fstab gemaakt hebt aan.

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #12 Gepost op: 2012/08/20, 21:33:14 »
Beste Johan,

Ik heb laatst de database met jouw commands verplaats, het probleem is dat nu de /home schijf ook vol zit. (Hij staat in /home/mysql) Zie:


root@XXXXXXX:/home/minecraft/multicraft/servers/server87# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                 10G  3.0G  6.6G  31% /
/dev/root              10G  3.0G  6.6G  31% /
/dev                  7.9G  176K  7.9G   1% /dev
none                  7.9G     0  7.9G   0% /dev/shm
none                  7.9G   52K  7.9G   1% /var/run
none                  7.9G     0  7.9G   0% /var/lock
/dev/md2              101G   89G  7.3G  93% /home
/dev/md2              101G   89G  7.3G  93% /var/lib/mysql

Nu heb ik al even snel wat van /home verwijderd, en de grootste bestanden uit een database maar dit word dus verdubelt lijkt me, Kun je mij daar mischien mee helpen? :)

Alvast bedankt weer! :)

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #13 Gepost op: 2012/08/21, 16:23:30 »
Je kan eens kijken hoe groot de /var/lib/mysql dir is.
du -csh /var/lib/mysql

De ruimte die je bestanden innemen op de schijf wordt niet verdubbeld. Je ziet alleen in overzichten nu 2x /dev/md2, omdat je in principe /dev/md2 2x gemount hebt, dit hoort zo.

Als het overzicht te verwarrend is, kan je evt. ook nog de mysql-server tijdelijk stoppen en /var/lib/mysql unmounten.
Als je dan weer de overzichten voor gebruikte en vrije ruimte opvraagt zie je direct het verschil.

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #14 Gepost op: 2012/08/21, 19:03:19 »
du -csh /var/lib/mysql
]3.4G   /var/lib/mysql
3.4G    total

Probleem is dat als ik naar bestanden zoek groter als 1gb vrij weinig vind.

Toch maar snel het spul verplaatsen, snel uitzoeken hoe dat precies in zijn werk gaat.

(Is hier eventueel iemand die mij hierbij kan begeleiden? Ik wil namelijk dat 1, ik het na die tijd ook begrijp, en 2, dat het niet verkeerd gaat. Eventuele vergoeding is mogelijk :)) (Ik hoop dat zo'n klein oproepje is toegestaan? Zoniet dan zal ik het weghalen.)

Johan bedankt voor je hulp weer!

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #15 Gepost op: 2012/08/23, 19:34:16 »
Niemand die mij wil begeleidingen tegen een vervgoeding? Ik durf er zelf eigenlijk niet echt goed aan te beginnen om eerlijk te zijn.  :|

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #16 Gepost op: 2012/08/23, 21:15:27 »
Ik denk dat je het in de verschillende home directory's moet gaan zoeken.
De / partitie is niet zo vol, het meeste staat ergens in /home/...

Je kan eens kijken welke home directory er het grootst is en waar dan de meeste data staat.
du -x --max-depth=2  /home 2> /dev/null | sort -n -r | head -n20

Het probleem lijkt in ieder geval niet bij je database te liggen, want die is niet zo groot.

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #17 Gepost op: 2012/08/23, 22:09:48 »
de /home directory is inderdaad heel groot. Maar ik wil sowieso alle databases gaan verplaatsen. Deze server gaat binnenkort toch offline. Maar zoals ik al aangaf durf ik dit alleen niet. En wil ik graag iemand vragen die er verstand van heeft :)

du -x --max-depth=2  /home 2> /dev/null | sort -n -r | head -n20

94708676        /home
92012124        /home/minecraft
92012108        /home/minecraft/multicraft
2693760 /home/mysql
2693756 /home/mysql/mysql
2772    /home/backup-multicraft
16      /home/lost+found


Klopt inderdaad, Er lopen Minecraft servers op.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #18 Gepost op: 2012/08/23, 23:02:46 »
Ik snap het probleem van de databases niet, die zijn maar 3 GB groot. De meeste ruimte (bijna 90 GB) zit in /home/minecraft/multicraft
Het verplaatsen van de databases is dus maar een druppel op een gloeiende plaat...

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #19 Gepost op: 2012/08/23, 23:24:04 »
Het feit dat het nu op 1 dedicated heb staan en ik het graag naar een aparte vps heb. En dat ik toch op een of andere manier in het begin 10gb vol had en nu 3gb vrij heb.

Alleen wat is er dan in die 1e dag bij gekomen dat ik op die 100gb van 70 naar 100gb gegaan ben. :/

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Mysql verplaatsen
« Reactie #20 Gepost op: 2012/08/23, 23:59:28 »
Minecraft kan ziekelijk veel ruimte in gaan nemen als de spelwereld groter wordt.
Ik zou dus eens gaan kijken waar die ruimte allemaal in gaat zitten.

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #21 Gepost op: 2012/08/24, 22:30:32 »
Dat weet ik, maar dat neemt niet weg dat ik Mysql alsnog wil verplaatsen ;)

Offline chappie

  • Lid
Re: Mysql verplaatsen
« Reactie #22 Gepost op: 2012/08/29, 18:02:42 »
Ik heb uiteindelijk het probleem gevonden waardoor de gehele server zo vol zat. 1 of andere idioot had besloten om zijn wereld maar eens zo'n 8x per dag te gaan backuppen, niet in pakken. gewoon normale kopies, en dan ook nog van 3 maanden terug bewaren.

Ik heb zojuist op aanraden van iemand via tweakers.net de databases gekopiert met rsync, phpmyadmin ziet ze. Ik wil dus even testen of het werkt of niet :)