Logo
  • Entries
  • Comments
  • Popular
Recent Posts
  • January 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • July 2007
Recent Comments
  • Makendra It's always a pleasure to hear from someone with eexrpitse....
  • Rubén Ortiz Hola dependerá de varias cosas pero la respuesta sería NO. ...
  • jose miguel perea Buenos días, ¿La replicación entre maestro y esclavo es i...
  • Rubén Ortiz Si lo hacéis legal, con VMware el único problema son los cos...
  • Angel Hola, estamos valorando implementar baremetal para crear un ...
Popular Articles
  • Declaro la guerra al mosquito Tigre (35)
  • Phpbb3 - encode error converter (19)
  • MySQL - Variables básicas a configurar (17)
  • Reinicio programado Windows 2003 Server (16)
  • Plesk - Evitar el SPAM (10)
  • Home
  • Contacta
  • Hosting Linux
  • Legal
  • Sobre mí – About me

Mysqldump – Backup y restore

Posted by Rubén Ortiz on Jan 16, 2008 in MySql, Software | 4 comments
Mysqldump – Backup y restore

La finalidad de escribir estos pequeños artículos, no es la de redactar complejos tutoriales porque para eso ya hay miles de sitios. Pero a mi resulta útil tener pequeños documentos online siempre, que puedo consultar a todas a horas y son de indudable valor para mi trabajo, más si la memoria no es una de tus virtudes :D

El gran problema del Phpmyadmin es, dejando de lado su velocidad o rendimiento según la conexión que tengas, es el tema de la restauración de la base de datos. Cuando tenemos una base de datos mediana(he tenido problemas con bases de datos de 20MB) ya es complicado hacer el restore vía web. Y si, como puede ocurrir fácilmente, tenemos un monstruo de base de datos, no es viable.

Entonces entra en juego el famoso comando mysqldump. Hablamos en este post sobre MySQL en entornos Linux.

Lo primero es hacer el backup de la base de datos que vamos a mover. Desde el bash, utilizamos el comando mysqldump, que viene con la mayoría de instalaciones de MySQL actuales. Después comprimimos el archivo con tar y gz.

1
2
3
<strong>#mysqldump --user (usuario) -p(password) (nombre bd) &gt; (nombre).sql
#tar -cvvf (archivo).sql.tar (nombre archivo).sql
#gzip (archivo).tar</strong>

El usuario debe tener los permisos necesarios para poder efectuar el backup de la base de datos. Ahora que tenemos el archivo comprimido, vamos a moverlo hacia su nuevo destino. Hay muchas maneras, y algún día supongo utilizaré otra, pero ahora utilizo el scp(Secure Copy).

1
<strong>#scp (archivo).tar.gz (usuario)@(ip host destino):/(directorio)</strong>

Si usamos algún otro puerto para el servicio de Ssh, debemos configurar el comando scp con la opción -p. Después de ejecutar el comando nos pedirá el password del usuario que hemos configurado. Sólo queda esperar que acaba la transferencia entre los hosts.

Nos conectamos al nuevo host y creamos la nueva base de datos, su user y password. Ahora, toca hacer el restore. ¡Atención! el restore del archivo .tar.gz se hace con el comando mysql, no con el mysqldump.

1
2
3
<strong>#gunzip (archivo).tar.gz
#tar -xf (archivo).tar
#mysql -u (usuario) -p --database=(nombre bd) &lt; (archivo).sql</strong>

Introducimos el password para el usuario mysql y a esperar. Puede ser que, el usuario que hemos creado, y más si lo hacemos desde aplicaciones web, no tenga los permisos mysql necesarios para hacer el restore de la base de datos. Un error similar sería así:

1
2
3
<strong>
# ERROR 1044 (42000) at line n: Access denied for user 'usuario@localhost'
to database 'prueba'</strong>

Si tenemos el password del usuario “root” de mysql, podemos efectuar el restore con el. Pero si tenemos el usuario root disponible, es también posible otorgarle a nuestro nuevo usuario, los permisos necesarios. Desde Phpmyadmin es muy fácil hacerlo, es la pestaña “Privilegios”.
Si estamos desde el bash, nos conectamos al mysql desde línea de comandos y efectuamos la siguiente operación:

1
2
<strong>#GRANT ALL PRIVILEGES ON (nombre bd).* TO 'usuario@localhost'
IDENTIFIED BY 'password';</strong>

* quiere decir todas las tablas de esa base de datos. Si fuese *.* seria a todas las tablas de todas las bases datos, así que cuidado.

Actualización 8-6-2011

1
2
3
<strong>#mysqldump -f -R --user (usuario) -p(password) --all-databases &gt; (nombre).sql
#tar -cvvf (archivo).sql.tar (nombre archivo).sql
#gzip (archivo).tar</strong>

Incluimos los parámetros -f y -R

  • -f: fuerza a completar el backup pese a encontrar errores
  • -R: hace también backup de las stored procedures almacenadas

4 Responses to “Mysqldump – Backup y restore”

  1. Rubén Ortiz » Tablas grandes says:
    23 de January, 2008 at 3:36 pm

    [...] con el tema del backup y restore en motores de base de datos mysql. Hacemos backup de una base de datos MySQL en un, por supuesto, [...]

  2. Rubén Ortiz » Mysqldump - Backup estructura says:
    15 de April, 2008 at 11:34 am

    [...] la base de datos, hemos de añadir la opción –no-data. Y seguir el proceso habitual que ya comentamos en otros [...]

  3. X-Trader says:
    18 de July, 2009 at 12:24 pm

    Muchísimas gracias por este artículo, sin él no habría podido restaurar mi web en el nuevo servidor ya que la base de datos pesaba más de 400 Mb.

  4. Rubén Ortiz says:
    19 de July, 2009 at 1:17 pm

    Perfecto :D

  5. alejandro says:
    14 de June, 2010 at 5:27 pm

    Hola
    Se hacen los respaldos y todo de la base de datos con mysqldump, pero como se llevan al mismo tiempo los procedimientos y triggers, vistas, de la base respaldada, ¿tiene alguna opción el mysqldump para hacer esto?

    saludos
    Alejandro

  6. Rubén Ortiz says:
    15 de June, 2010 at 3:52 pm

    Si, mírate el man del mysqldump, porque si que hace backups de las vistas y demás.

    saludos.

Leave a Reply

Click here to cancel reply.

Nube de Tags

apache bare metal benchmark cacti centos dell drupal esxi General gripe A Hardware humor IIS kayako Linux lpi lyric Lyrics memcached mysql nginx openfiler OpenVZ openx Parallels php Phpbb plesk postgresql proftpd raid SQL Server ssh svn trac ubuntu varnish Virtualizacion Virtuozzo Virtuozzo Linux Warphammer.net Windows windows 2003 wordpress zabbix

Categorias

  • 2003 Server
  • Apache 2.X
  • benchmark
  • Centos
  • Cuanto (Luser) Cabron
  • ESXi
  • General
  • Hardware
  • IIS
  • Lighttpd
  • Linux
  • Lyrics
  • MySql
  • Nginx
  • OpenVZ
  • Parallels
  • Parallels Bare Metal
  • Php
  • Phpbb
  • Plesk
  • PostgreSQL
  • Prestashop
  • Software
  • SQL SERVER
  • Ubuntu
  • Varnish
  • Virtualizacion
  • Virtuozzo
  • Virtuozzo Windows
  • VMWare
  • Warphammer.net
  • Windows
  • Wordpress

Blogroll

  • David Toribio
  • EasyCompany.es
  • Marius Duch
  • Series
  • Warphammer.net

Recursos

  • Backup Plesk9
  • CentOS 5 32 bits RPMs
  • CentOS 5 64 bits RPMs
  • Lighttpd
  • MySQL Tunner
  • OpenVZ – Panel – PROXMOX
  • OpenVZ – Panel – VTONF
  • OpenVZ Wiki
  • Parallels Virtual Automation Resources
  • Plesk 8 Docs
  • Plesk 9 Docs
  • Plesk Hacker
  • Port80 – Compression Check
  • Virtuozzo DOCS
  • Virtuozzo Lin Commands
  • Virtuozzo Win Commands
  • Virtuozzo Windows Docu

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Designed by Elegant Themes | Powered by Wordpress