Flytta MySQL datadir till annan plats i Ubuntu (Debian)

Skriven: 07/07/2010 | Av: | Tags: ,

Under olika omständigheter så är det lämpligt att flytta platsen där alla databaser sparas av MySQL, det kan vara att man har slut på diskutrymme och vill flytta till annan partition. En annan anledning kan vara att man vill flytta databaserna till en krypterad katalog.

Datadir definieras i /etc/mysql/my.cnf och där ser vi att default så pekar den mot “datadir = /var/lib/mysql”.

Det finns nu två vanliga sätt att flytta katalogen, det ena är att peka om default sökvägen, det andra är att göra en “mount –bind” för att bibehålla sökvägen men samtidigt peka mot en annan plats. Jag valde att köra en mount, nackdelen här är att jag måste mounta innan mysql startar varje gång, fördelen är att vid en uppgradering behöver jag inte ändra my.cnf. Jag startar inte mysql automatiskt vid uppstart av servern så för mig är det ok. Det är även lätt att lägga in ett mount script i startup eller använda sig av /fstab. ln -s bortser jag helt från då prestandan påverkas för mycket av ln, disken behöver göra en extra läsning och databaser är I/O intensiva.

  1. Skapa mount katalog
    sudo mkdir /mysqlData
  2. Stoppa och flytta databasfiler
    sudo stop mysql
    sudo mv /var/lib/mysql /mysqlData
    sudo mkdir /var/lib/mysql
  3. Mounta ny katalog
    sudo  mount –bind /mysqlData /var/lib/mysql
    sudo mysql start

Woala! Så enkelt är det.


Kommentera inlägget »