忽略使用mysqldump在MySQL数据库备份“若干意见”

我需要忽略在我的数据库中的所有视图,并使用mysqldump采取备份。 目前我使用下面的选项。

--ignore-table=view1 --ignore-table=view2 --ignore-table=view3

有什么办法把备份省略所有视图,而不指定所有“视图”的名称?

--------------解决方案-------------

试试这个查询:

SELECT CONCAT('mysqldump -u username -ppassword -h host [some options here] `',`TABLE_SCHEMA`,'` `',
`TABLE_NAME`,'` > ',`TABLE_NAME`,'.sql') AS `sql`
FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE `TABLE_TYPE` != 'VIEW'
AND `TABLE_SCHEMA` NOT IN ('INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA','mysql');

用法

php mysqldump.php mydatabase myusername mypassword > myoutputfile.sql

这是我的一个很老的脚本。 有人可以很容易地适应这种使用PDO如果你没有访问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
system("mysqldump -u root --password=\"$password\" $database --skip-triggers ".implode(" ",$views));

?>

分类:MySQL的 时间:2012-01-01 人气:33
本文关键词: mysql的,mysqldump的
分享到:

相关文章

  • 我可以从一个完整的mysql的mysqldump文件还原单个表? 2013-05-12

    我有我的mysql数据库mysqldump的备份,包括我们所有的表,这是约440兆的. 我想恢复只是一个内容的表形成的mysqldump. 这可能吗? 从理论上讲,我可以切出,重建我想表中的部分,但我不知道如何有效地编辑文本文档的大小. --------------解决方案------------- 你可以尝试使用SED以只提取所需的表. 让说你的表的名称是mytable ,文件mysql.dump是包含您庞大的转储文件: $ sed -n -e '/CREATE TABLE.*mytable/

  • MySQL的mysqldump的通过还原数据库 - 它覆盖了不同的目标表? 2014-01-21

    我使用mysqldump备份包含多个表的数据库(表说D,E,F). 我用下面的命令:mysqldump的-uUser -ppassword SourceDatabase> file.sql备份这些表. 我想知道我是否恢复此备份,它会覆盖其他表? 举例来说,如果我有一个数据库DestinationDatabase,含表A,B和C,运行命令后,"MySQL的-uUser -Ppassword DestinationDatabase <file.sql",我就失去了目标数据库中的

  • 从导入mysqldump的--routines产生mysql的程序 2012-06-25

    我使用mysqldump的工具,使我的数据库的副本. 问题是,当我使用--routines参数可输出我的存储过程,伴随着我的数据,生成的输出将导致一个错误,当我尝试导入它. 它是这样的: % mysqldump --routines MyDB | mysql MyDB2 (其中MYDB2已经存在,但为空) 我得到的错误是以下几点: ERROR 1064 (42000) at line 307: You have an error in your SQL syntax; check the man

  • 错误而在mysql命令行采取备份使用mysqldump 2012-12-14

    你好,我试图把备份从MySQL命令行客户端. 我使用mysqldump采取用户名和密码备份. 以下是我使用备份数据库命令. mysql> mysqldump -u username -p password databasename > backup.sql; 我收到以下错误 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL serve

  • 拆分与多个数据库的mysqldump的文件,由数据库 2012-02-09

    我有多个数据库(5)mysqldump的文件. 其中一个数据库需要很长的时间来加载,是有办法来分开由数据库mysqldump的文件,或者只是告诉MySQL只加载指定的数据库之一? 马尼什 --------------解决方案------------- 或者,也可以直接保存在每个数据库到单独的文件中... #!/bin/bash dblist=`mysql -u root -e "show databases" | sed -n '2,$ p'` for db in $dblist; d

  • 还原一个MySQL数据库备份? 2012-02-09

    我使用这个命令来备份MySQL数据库: public function backup() { $backup = $this->location.'/'.$this->database.'_backup_'.date('Y').'_'.date('m').'_'.date('d').'.sql'; $cmd = "c:/xampp/mysql/bin/mysqldump --opt -h localhost -u root $this->database > $backu

  • 通过Java程序错误在创建备份mysql中 2012-02-09

    Runtime.getRuntime().exec("C:\\mysql\\bin\\mysqldump -u root -pmypassword Databasename -r C:/backup.sql"); 我使用这个代码来创建备份从我的SQL. 但它会在被守候在命令提示符下以获取密码的path.Because空文件. 我怎么可以给密码直接使用命令提示符当我按下输入后进入,它会询问password.After提供的密码,它创建backup.Give使我适合这份预先感谢任何解决方案

  • MySQL的转储兼容不工作 2012-05-11

    难道我做错了什么? 此命令将无法工作. 我试图移动从MySQL到PostgreSQL. mysql> mysqldump --compatible=postgresql dbname > /tmp/table.sql; 我不断收到一个错误. ERROR 1064(42000):你在你的SQL语法错误; 检查对应于你的MySQL服务器版本使用附近的正确语法手册'的mysqldump --compatible = PostgreSQL的DBNAME </tmp/table.sql"

  • 进口大MySQL的.SQL在Windows文件,力 2012-06-22

    我想导入Windows 7机器上的350MB MySQL的.sql文件. 我通常用做 mysql -uuser -p -e "source c:/path/to/file.sql" database 因为<不PowerShell的工作. 我的.sql文件中有这一次的错误. 我宁愿只跳过坏行并继续导入. 我怎样才能迫使进口继续在Windows? 在Unix / Linux操作系统为基础的系统,我可以用 mysql --force ... < file.sql 但--force

  • 我怎样才能加密的mysqldump使用VB.NET的输出? 2012-06-25

    我用这个代码创建我的数据库的转储文件. 现在,我想要的东西,如果可能的话,是这样,当它在记事本或任何类似的观察,一般用户无法读取它来加密. Call isDirectoryExist() Call createDbBackupName() Dim myProcess As Process = New Process Dim strUser As String = "superadmin" ' MsgBox(" --host=localhost --user='" &

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.249 (s). 10 q(s)