PDA

Ver la versión completa : Trasladar base de datos mysql a otro disco



bluescreen
11-06-2012, 18:16
Hola buenas! necesito ayuda para trasladar una base de datos a otro disco. No lo consigo hacer. Aqui estan los pasos que he seguido:

creo directorio y monto particion:
sudo mkdir /disco
sudo mount /dev/sdb1 /disco

añado linea en fstab
/dev/sdb1 /disco ext2 defaults 0 0

reinicio y la particion se monta en /disco (que es donde quiero poner la base de datos)

copio la base de datos:
sudo su
sudo cp -ax /var/lib/mysql /disco/mysql

renombro la carpeta original /var/lib/mysql a /var/lib/mysql.bak
(esto lo he hecho con nautilus)

creo enlace:
sudo ln -s /disco/mysql /var/lib/mysql

cambio el propietario:
sudo chown mysql:mysql /disco -R

me conecto a mysql:
sudo mysql -u root -p (ingreso la contraseña...)
use basedatos1; (database changed)
select * from tabla1; (y aqui ya me da error)
error 1018 can´t read dir of database/
o
error can´t find /tabla1.frm

he probado dando permisos extra, cambiando el usuario a root... dando permisos de escritura a grupo...

tambien antes de hacerlo asi habia probado con mover la base de datos a /disco y cambiando el datadir en el archivo my.cnf pero ahi me daba error de socket asi que preferi hacerlo con enlace y no tocar el archivo

alguien que le haya pasado esto? algun consejo o algo que pueda añadir?

por cierto uso ubuntu 10.04 server y la version de mysql es la que venia en el paquete lampp al instalarlo, debe ser de las ultimas sino la ultima. el pc es pentium 3 a 1 gh y los dos discos duros se conectan por ide por el mismo canal
utilizo tablas innodb

bluescreen
12-06-2012, 13:01
Bueno, llevo ya unas cuantas horas leyendo y buscando. No consigo avanzar mucho. Me he dado cuenta de que no parece que sea tema de tablas innodb, ya que he creado una base de datos con tablas normales (sin engine = innodb) y me sigue dando el error de can´t read of dir /tabla/

tambien he probado hacer copia de base de datos con mysqldump, eliminarla y volcarla de nuevo para ver si asi funciona, pero me da error mientras la esta copiando, el error es : can´t create table database.table1
asi que parece que sea tema de mysql server

si alguien puede aportar algo...

bluescreen
12-06-2012, 16:22
SOLUCIONADO
Parece ser que todo el jaleo que he tenido es debido a algo llamado apparmor, que si no es modificado provoca que no se pueda acceder a la carpeta donde se guarda la base de datos
al final me he deshecho de los symlinks o enlaces simbolicos y he cambiado el datadir.
pongo el enlace del post que he encontrado y seguro y espero les sirva a muchos como me ha servido a mi:

http://beyondterminal.tumblr.com/post/18785093709/howto-modificar-el-datadir-de-mysql

y por si el post desapareciese y para que quede aqui la respuesta, lo pongo en esta linea:

editamos este archivo
# sudo gedit /etc/apparmor.d/usr.sbin.mysqld
y cambiamos solo las dos lineas que son donde estaba la base de datos anteriormente, y escribimos la ruta de donde estan ahora
despues reiniciar el pc