我想每天用表定义和表数据做一个mysqldump,为此我用这个命令配置了一个cron作业:“mysqldump-uuser-pxxxxxsite_DB|gzip>backup/site/site_t_$(date|awk{'print$1""$2""$3"_"$4'}).sql.gz"但这只会导出表定义。导出数据的正确命令是什么?谢谢 最佳答案 默认mysqldump也导出数据-您必须使用--no-data标志使其仅导出结构。由于您的默认情况下这样做,这意味着在您的MySQL中设置了“无数据”optionsfile,您可以在thes
我目前正在尝试编写一个脚本来备份我的几个站点及其数据库。一切都运行良好,但我正在努力使我的日志更聪明一些-基本上,此刻它将尝试运行mysqldump并将回显成功或失败。我宁愿做的是输出实际的错误,而不仅仅是一个无用的“mysqldump失败”消息。我环顾四周,几乎可以按照我想要的方式使用“2>log_file.txt”我原来的命令:mysqldump-uasdsa--password=$DB_PASS$DB_NAME>$MYSQL_LOCATIONif["$?"-eq0]thenecho-e"mysqldumpsuccessfullyfinishedat$(date+'%d-%m-%Y
我正在使用此命令从mysqldump进行备份mysqldump-uroot-ptrackerdb)--alldatabases>test.sql现在我想在我的备份文件中添加日期时间,例如当前日期和时间,例如test_25July2013_13:00为此我在文件名中添加了test_date+%Y-%m-%d_%H-%M-%S.sql但它给出了错误“找不到表”:日期+%Y-%m-%d_%H-%M-%S`我做错了什么? 最佳答案 我正在使用它:Linuxmysqldump-u-p|bzip2-c>$(date+%Y-%m-%d-%H.%M
我有一个巨大的mysqldump输出并且想要排除特定表的插入。文件看起来像这样:----Dumpingdatafortable`big_table`--INSERTINTO`big_table`...INSERTINTO`big_table`...----Tablestructurefortable`next_table`--如何删除“为表big_table转储数据”和下一个“表的表结构”之间的插入文件太大,无法放入文本编辑器。 最佳答案 我忽略了一个事实,所有插入当然都是以表名开头的。所以我可以简单地使用grep-v"INSERT
我在SMPDebianLinux3.2.60上使用mysql5.5.38。它工作正常,但我无法进行任何备份。mysqldump总是显示“未知变量“character-set-server=utf-8””错误。即$mysqldump--versionunknownvariable"character-set-server=utf-8"有没有办法在my.cnf或其他任何方式中修复它? 最佳答案 根据文档https://dev.mysql.com/doc/refman/5.5/en/charset-applications.html,[m
我正在使用以下命令从每个数据库的每一列中转储100行。问题是它返回前100条记录,而我更希望返回最后。我找到了一个标志,可以让我按主键排序(--order-by-primary),但它仍然返回错误的行。我会尝试将“orderby”偷偷放入下面的where标志中,但每个表的主键都不同。mysqldump-uusername-p--where="truelimit100"--all-databases>dump.sql有没有办法在抓取最后100条记录之前颠倒顺序,或者可能是一种引用PK而不是PK的列名称的方法? 最佳答案 我认为只要您不
我正在尝试完全转储我的数据库。在进行转储时,mysqldump会跳过一些表,尤其是那些带有外键的表。并不是每个带有外键的表都被跳过。只有一些特定的表!我尝试了-f开关。它迫使它包含几张表,但仍有两张表被跳过。这正常吗?我的意思是,这会发生吗?我的模式有问题吗?如何解决? 最佳答案 引用@Nikhil对McAfee的评论。我遇到了这样一种情况,McAfee试图读取(并因此阻止)当查询从内存移动到临时文件时MySQL创建的临时文件。我们必须创建一个特定的规则来阻止McAfee尝试扫描临时文件,这样MySQL就不会出现问题。在这种情况下,
我的服务器设置如下:webserver(网关机器,可通过SSH从Internet访问)dbserver(数据库服务器,无法从网络访问)我的目标是使用mysqldump通过网络将备份从dbserver拉到我的笔记本电脑。到目前为止,问题是thisquestion的副本。,exceptwebservernot安装了mysqldump,而且我没有安装它的权限。因此,我试图在我的笔记本电脑上使用mysqldump从我没有SSH权限的网关后面的服务器中提取数据。在讨论之后here和here,我正在尝试做这样的事情来建立隧道:ssh-f-L3306:dbserver:3306user@webser
我正在尝试使用mysqldump在MySQL中转储表的子集。我有我想从表中选择的行的id值,存储在一个文件中。当我将这些值用作变量时,如下所示:ids=`catids.csv`mysqldump-uroot-pdbTable--where="idin($ids)">>dump.sql我得到:x.bash:linex:/usr/bin/mysqldump:Argumentlisttoolong我可能会尝试将单行变量$ids(1,2,3,4,..)分成较短的列表并在循环中调用mysqldump但我目前不太擅长bash脚本中的循环。或者可能有更好的方法来解决这个问题。在此先感谢您的帮助。编辑
我有一个简短的PHP脚本,它应该执行MySQL备份并通过电子邮件发送给我。然而,数据和结构都不是由mysqldump写入的。调用mysqldump的命令如下所示:mysqldump--host=localhost--user=xxx--pass=xxxxxx_license>xxx2012-12-28.sql(xxx用户名和密码与另一个使用php和数据库的脚本相同,所以我知道凭据是正确的)。输出如下:--MySQLdump10.13Distrib5.5.28,forLinux(x86_64)----Host:localhostDatabase:xxx_license----------