草庐IT

MYSQLDUMP

全部标签

mysql - 如何将sql查询的结果转储到文件中

好的,所以我处于需要将sql查询的结果转储到文件中的情况,这是为了备份目的,我尝试从我的终端运行以下命令:mysql-e"select*fromproductswherebrand_id=5"-uroot-pdatabase_name>dumpfile.sql这会转储数据,但带有“插入语句”,因此如果稍后我想将此数据转储回我的数据库,我将重新组合它。这不是正确的方法。所以请建议我如何转储查询结果以供备份? 最佳答案 以下命令行(使用--where选项)应该可以工作:mysqldump-uroot-pdatabase_nameprod

不锁定表的 MySQLDump

貌似如果表很多的话,只能执行一次MySQLDump,不能全部加锁,否则会报错。在不锁定所有表的情况下执行MySQLDump的副作用是什么?我通过这种方式获得的数据库快照是否一致?我是否有任何其他方法来备份包含许多表的MySQL数据库? 最佳答案 最好的方法(如果使用InnoDB)实际上是在复制的从服务器上运行备份。这样锁定将没有任何后果。否则只需使用提到的--single-transaction标志。 关于不锁定表的MySQLDump,我们在StackOverflow上找到一个类似的问题

MySQLdump 没有数据导出

我想每天用表定义和表数据做一个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

bash - 在 bash 脚本中捕获 mysqldump 错误

我目前正在尝试编写一个脚本来备份我的几个站点及其数据库。一切都运行良好,但我正在努力使我的日志更聪明一些-基本上,此刻它将尝试运行mysqldump并将回显成功或失败。我宁愿做的是输出实际的错误,而不仅仅是一个无用的“mysqldump失败”消息。我环顾四周,几乎可以按照我想要的方式使用“2>log_file.txt”我原来的命令:mysqldump-uasdsa--password=$DB_PASS$DB_NAME>$MYSQL_LOCATIONif["$?"-eq0]thenecho-e"mysqldumpsuccessfullyfinishedat$(date+'%d-%m-%Y

mysql - 从 MySQL docker 容器导出数据

我使用的是官方MySQLdocker镜像,但我很难从实例中无误地导出数据。我像这样运行导出:dockerrun-it--linkcontainername:mysql--rmmysqlsh-c'execmysqldump-h"$MYSQL_PORT_3306_TCP_ADDR"-P"$MYSQL_PORT_3306_TCP_PORT"-uroot-p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"dbname'|gz>output.sql.gz但是,这会导致警告:"mysqldump:[Warning]Usingapasswordonthecommandlineinte

mysql - 大型数据集的最佳数据库引擎

我从事数据挖掘工作,我的工作涉及将超过1GB的数据库转储文件加载和卸载到MySQL中。我想知道是否有任何其他免费数据库引擎在大型数据库上比MySQL工作得更好?PostgreSQL在性能方面更好吗?我只使用基本的SQL命令,所以速度是我选择数据库的唯一因素 最佳答案 替换不同的数据库引擎不太可能显着提高性能。您提到的速度变慢更可能与您的架构设计和数据访问模式有关。也许您可以提供更多相关信息?例如,数据存储为时间序列吗?记录是顺序写入一次还是任意插入/更新/删除? 关于mysql-大型数据

mysql - 如何在命令提示符下使用 mysqldump 添加带有备份文件名的日期和时间,以及如何定义备份文件的路径

我正在使用此命令从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

mysql - 自动将 INSERT 语句转换为 UPDATE 的简单方法?

我想使用mysqldump的输出来更新实时数据库中的条目。我不想先删除条目,简单的更新语句就可以了。有没有一种简单的方法可以将包含INSERT语句的mysqldump的输出转换为相应的UPDATE语句?这似乎是一个基本功能,所以我敢肯定有人创建了一个工具或想出了一个快速完成它的方法,这样人们就不必一直重新发明轮子,每个人都编写自己的脚本这个。编辑:我正在寻找一种通用解决方案,而不是我必须手动枚举实际表列的解决方案。这是一个一般性问题,所以我认为应该有一个独立于表的解决方案。 最佳答案 您可以将mysqldump数据恢复到新的临时数据

bash - 从 mysqldump 输出中删除特定表的插入数据(sed?)

我有一个巨大的mysqldump输出并且想要排除特定表的插入。文件看起来像这样:----Dumpingdatafortable`big_table`--INSERTINTO`big_table`...INSERTINTO`big_table`...----Tablestructurefortable`next_table`--如何删除“为表big_table转储数据”和下一个“表的表结构”之间的插入文件太大,无法放入文本编辑器。 最佳答案 我忽略了一个事实,所有插入当然都是以表名开头的。所以我可以简单地使用grep-v"INSERT

bash - 带时间戳的 Mysql 转储

我有一个使用MySQL数据库的项目。我想每天备份数据库,所以我用这个:mysqldump-hhost-uuser-ppassworddatabase>'location.sql'我希望文件以时间戳命名,即:今天文件将被命名为something-07-05-201408-00-00明天将是,something-08-05-201408-00-00如何为导出的文件名附加格式化的时间戳? 最佳答案 你可以这样使用mysqldump-hhost-uuser-ppassworddatabase>$(date"+%b_%d_%Y_%H_%M_%