En mi base de datos tengo algunas tablas y vistas. ¿Cómo puedo exportar todas las tablas (y no las vistas) de mi base de datos desde la línea de comandos?mysql dump tables only
Respuesta
Puede usar mysqldump con la opción --ignore-table para excluir las vistas individualmente. O use mysqldump y elimine las vistas con una aplicación/manualmente. grep podría ser una opción:
grep -v "CREATE VIEW" db.dump > db-without-views.dump
El mysqldump implementación actual no creará vertederos sin vistas - y además, (Que yo sepa) vistas son en realidad crea dos veces - una vez en forma de tabla, la tabla se descarta y se reemplaza con una vista. Por lo tanto, no puede filtrar el comando "CREAR VISTA", a menos que ese comportamiento se haya modificado.
Sin embargo, mysqldump tomará una lista de tablas como parámetros después del nombre de la base de datos. Algo como esto:
mysqldump -ujoe -pmysecret joesdb posts tags comments users
+1: Me encanta esto. – vietean
Incluso puede consultar las tablas de Mi Esquema de información de SQL: 'mysqldump the_db_i_want $ (mysql -Ne" SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'the_db_i_want' Y TABLE_TYPE = 'BASE TABLE' ")' –
backuping una sola tabla de una base de datos de
mysqldump -uUSERNAME -pPASWORD DATABASE TABLE_NAME --host=HOST_NAME > c:\TABLE_NAME.sql
Restauración de una sola tabla de una base de datos de volcado
mysql -uUSERNAME -pPASSWORD DATABASE --host=HOST_NAME < c:\TABLE_NAME.sql
ignorar una sola vista de su base de datos de volcado :
mysqldump -uusrname -ppwd -h hostname --ignore-table=db.view_name db > db.sql
Ignorar vista múltiple a partir de su base de datos de volcado:
mysqldump -uusrname -ppwd -h hostname --ignore-table=db.view1 --ignore-table=db.view2 db > db.sql
NOTA: hacer caso omiso de múltiples vistas para uso volcado --ignore-table
opción varias veces.
Uso
php mysqldump.php mydatabase myusername mypassword > myoutputfile.sql
Este es un script bastante viejo mío. Alguien podría adaptar esto fácilmente para usar PDO si no tiene acceso a las funciones de mysql.
<?php
if (is_array($argv) && count($argv)>3) {
$database=$argv[1];
$user=$argv[2];
$password=$argv[3];
}
else {
echo "Usage php mysqdump.php <database> <user> <password>\n";
exit;
}
$link = mysql_connect('localhost', $user, $password);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$source = mysql_select_db('$database', $link);
$sql = "SHOW FULL TABLES IN `$database` WHERE TABLE_TYPE LIKE 'VIEW';";
$result = mysql_query($sql);
$views=array();
while ($row = mysql_fetch_row($result)) {
$views[]="--ignore-table={$database}.".$row[0];
}
//no views or triggers please
echo passthru("mysqldump -u root --password=\"$password\" $database --skip-triggers ".implode(" ",$views));
?>
Pruebe lo siguiente:
mysqldump -h drupdbsvr -u elt_drupal_dba -pdrupdev-654! clms_admin views_display views_view view_argument view_exposed_filter view_filter view_sort view_tablefield view_view > /opt/dbdump/clms_admin_view.sql
Cuando la sintaxis es: -
mysqldump -h hostname -u database_user_name database_password database_name table_name1 table_name2 > path/sql_file.sql
guión de Actualización @ ladieu:
argumentos- Shell se escaparon adecuadamente permitiendo contraseñas con personajes de shell
- Usando DOP en lugar de las funciones específicas de MySQL (en algún momento parece una IP que hay que resolver en contra de DNS con las mysql_ * funciones y por lo tanto desencadenar un error)
- supuesto Eliminado de que el guión se utiliza de forma local (parámetro host añadido)
- Uso las opciones "-r" para evitar problemas de codificación
- nombran el archivo de salida.sql
- parámetros reordenados para que no encajar "Quiero conectar a con el usuario identificado por y volcar la base de datos>
<?php
if (is_array($argv) && count($argv)>3) {
$host=($argv[1]);
$user=($argv[2]);
$password=($argv[3]);
$database=($argv[4]);
}
else {
echo "Usage php mysqdump.php <host> <user> <password> <database>\n";
exit;
}
echo 'connecting to'.$host;
$pdo=new PDO("mysql:host=$host;dbname=$database",$user,$password);
//$link = mysql_connect($host, $user, $password);
//$source = mysql_select_db($database, $link);
$sql = "SHOW FULL TABLES IN `$database` WHERE TABLE_TYPE LIKE 'VIEW';";
$result = $pdo->query($sql);
$views=array();
while ($row = $result->fetch()) {
$views[]="--ignore-table={$database}.".$row[0];
}
//no views or triggers please
$host=escapeshellarg($host);
$user=escapeshellarg($user);
$password=escapeshellarg($password);
$database=escapeshellarg($database);
echo passthru("mysqldump -h $host -u $user --password=\"$password\" $database --skip-triggers ".implode(" ",$views)." -r $database.sql");
disfrutar!
- 1. MYSQL Flush Tables
- 2. Entity Framework Code First MySql Pluralizing Tables
- 3. mysql create view only si no existe
- 4. SQL Dump from DB2
- 5. Tablas insertadas y eliminadas (Magic Tables) en MySQL
- 6. MySql Temp Tables VS Views VS arrays php
- 7. Convertir Mysql Dump File de INSERT para INSERTAR IGNORE
- 8. ¿Cómo en H2DB obtener sql dump como en MySql?
- 9. Dump MySQL vista como una tabla con datos
- 10. Copia de seguridad de vistas con Mysql Dump
- 11. ¿Es posible ver los subprocesos de dump dump/threads en heap dump
- 12. Bash Output Tables
- 13. dump csv de sqlalchemy
- 14. Visual Studio DataSet Designer Refresh Tables
- 15. ¿Para qué sirve sql-dump?
- 16. Dump include paths from g ++
- 17. Core dump equivalence para Java
- 18. AJAX only access
- 19. grep --ignore-case --only
- 20. jquery validation only digits
- 21. Rails debug method only outputs! Binary values
- 22. MySQL flush tables - ¿Base de datos actual o cada base de datos?
- 23. ¿Busca un archivo SQL-Dump sin importarlo en un DBMS?
- 24. Otro problema de Divs vs Tables: Formularios
- 25. Windows Azure Tables - Recuento de filas?
- 26. Android ContentProvider database query multiple tables
- 27. EF4 Code First make tables names singular
- 28. SQL Server Temp Tables y Connection Pooling
- 29. SharePoint Lists vs Database Tables performance
- 30. Windows Azure Tables, consultando con Contiene
Ten en cuenta que el dumper escribe varias líneas por cada punto de vista, por lo excluir la primera línea mencionada solo dejará errores en su volcado. –
Lo que dijo @ZsoltSzilagy. --ignore-tables funciona, pero el resto dará como resultado una exportación interrumpida. – DougW
¿Por qué está marcado como correcto? Esto no ayudará a todos. –