2012-03-30 16 views
5

¿Es posible automatizar la exportación de un único archivo db utilizando phpMyAdmin?¿Cómo puedo automatizar la exportación de una base de datos mySQL usando phpMyAdmin

Cuando intento crear el archivo .sql a partir de un script externo, como php, el archivo .sql resultante parece limpio, pero cuando se importa causa problemas en la aplicación.

Cuando uso phpMyAdmin para crear un archivo .sql similar al usar Exportar, el archivo .sql resultante Importa sin causar ningún problema a mi aplicación.

La aplicación es moodle 2.2, la versión de MySQL es 5.5, la versión de phpMyAdmin es 3.4.10.

+1

No lo revisé en phpMyAdmin, pero quizás la mejor solución sea hacer un trabajo cron. – Dudeist

+0

Estoy usando cron para llamar a mi script externo que es problemático, por lo que me gustaría crear el script directamente desde phpMyAdmin. – jamesTheProgrammer

+0

Puede conectar MySQLBackupFTP (http://mysqlbackupftp.com/) a su phpMyAdmin y establecer un cronograma para realizar copias de seguridad de sus bases de datos automáticamente. –

Respuesta

4

La mejor opción es crear una secuencia de comandos que ejecute la exportación de la base de datos con mysqldump y luego un cronjob para ejecutar esa secuencia de comandos.

+0

ya que estoy usando un servidor de Windows 2003, no hay un script de cron disponible. para automatizarEncontré la versión de Windows de cron, AT, donde pude usar mysqldump, como dijiste desde la línea de comandos. – jamesTheProgrammer

+3

Cronjobs en Windows se llaman Taks programadas. – edelgado

+0

Esto funciona muy bien hasta que está con una empresa de hosting donde la dirección IP del servidor de bases de datos es localhost o alguna dirección [RFC 1918] (http://www.faqs.org/rfcs/rfc1918.html) y su único otro acceso es FTP Entonces, su único acceso a nuestra base de datos es phpMyAdmin o mediante un script PHP de cosecha propia, porque no puede acceder al DB desde Internet. –

2

Si no se puede conectar directamente a la base de datos con mysqldump, se puede utilizar este script de shell (requiere rizo):

#!/bin/sh 
ADMIN_URL='https://phpmyadmin.example.com' 
USERNAME='my_username' 
PASSWORD='my_password' 
COOKIEJAR='/tmp/my_cookiejar' 
token=`curl -s -o - -d "pma_username=$USERNAME" -d "pma_password=$PASSWORD" -c "$COOKIEJAR" "$ADMIN_URL/" | grep -o -m 1 "token=.*'" | sed "s/'//"` 
curl -o - -b "$COOKIEJAR" -d what=sql -d export_type=server -d sql_structure_or_data=structure_and_data -d "$token" "$ADMIN_URL/export.php" 
rm "$COOKIEJAR" 

A continuación, ponerlo en su crontab:

22  3 * * * someuser /path/to/script.sh > /path/to/backup/db.sql 

a obtener una copia de seguridad a las 3:22 cada noche.

Solo probado con phpMyAdmin 3.4.10.1 y podría no funcionar en otras versiones (principales).

+0

Parece que V4 tiene tokens en el formulario, así que no creo que esto funcione ... Aunque no probado. – Nick

+0

alguna actualización sobre esto? £ –

0

Usar este comando: https://github.com/qubitstream/phpmyadmin_sql_backup

phpmyadmin_sql_backup.py

Un Python 3 script para automatizar la descarga de copias de seguridad de SQL a través de una interfaz web phpMyAdmin.

Esto es útil cuando su proveedor de alojamiento web no le otorga acceso a la la consola (por mysqldump) pero desea automatizar el copia de seguridad de su base de datos (sin tener que utilizar manualmente el navegador).

Se ha probado con Python 3.4+ en Linux y Windows y phpMyAdmin 4.3.6, 4.5.4.1 y 4.7.0-dev

Nota: La interfaz web de phpMyAdmin puede cambiar en el futuro y romper este guion Por favor, presente un informe de error (incluida su versión de phpMyAdmin) si tiene este problema.

Ejemplo:

phpmyadmin_sql_backup.py "http://www.example.com/phpmyadmin/" your_user your_password 

otras opciones disponibles.

Cuestiones relacionadas