mysql带where条件导出数据表以及部分错误解析

mysql 专栏收录该内容
61 篇文章 11 订阅

一、前言

      最近导出数据表的时候,屡屡受挫,让博主一度以为自己记错了,死活导不出来,后来才看到报错:

mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1/*!40102 ,
SQL_MODE=concat(@@sql_mode, _utf8 ',NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS') */': Unknown system variable 'OPTION' (1193)

      行叭,下面咱们来说一下这个问题,以及导出数据表的正确姿势

二、正确导出数据表

1、报错解答

      上面的报错是因为mysqldump的版本问题,导致跟mysql的版本不匹配,下面贴出一个google来的答案。

如果您最近将MySQL版本升级到5.6,则mysqldump命令可能会引发以下错误:

mysqldump:无法执行'SET OPTION SQL_QUOTE_SHOW_CREATE = 1':您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行的'OPTION SQL_QUOTE_SHOW_CREATE = 1'附近使用(1064)
原因是MySQL 5.6删除了对“ SET OPTION”的支持,并且您的mysql客户端工具可能在较旧的版本上。最有可能是5.5或5.1。在MySQL bug网站上有关于此问题的更多信息。

最快的解决方案是将您的mysql客户端工具更新为5.6,您的问题将得到解决。不幸的是,目前有用于Ubuntu的MySQL 5.6工具的官方二进制文件。但是,我确实在很好的旧GitHub上找到了一个解决方案,您可以在其中将此自定义MySQL 5.6客户端工具添加到ubuntu存储库中。它像一种魅力。要在ubuntu上安装mysql客户端工具5.6,请运行以下命令:

      所以如果大家也是有相同的错误,那么升级下mysqldump即可,具体的升级步骤可以自行百度

2、正常的导出命令

mysqldump -h  [hostname] -u [用户名] -p [数据库名]  [数据表名]>/home/lijinfeng/test.sql;
注 : > xxx/test.sql 是你自己要保存sql文件的路径

      咱们这里只是列一下导出的命令,具体的一些参数和含义,大家可以参考:
mysqldump命令使用详解

3、导出遇到小错误怎么办

报错信息:

mysqldump: Got error: 1044: Access denied for user 'manage'@'10.17.%' to database 'manage' when doing LOCK TABLES

      遇到错误不要慌,这个错误看起来就是用户权限不够的原因,所以解决方案自然是加大用户权限或者导出的时候不锁表就好了,解决方案如下:

加上 --skip-lock-tables,声明不锁表即可
注:mysqldump 参数--lock-tables 参数是锁定当前导出库的所有表,实际生产环境慎用或者要声明不锁表
			参考:https://www.cnblogs.com/kerrycode/p/6963880.html

另外:使用 --quick 和 --single-transaction 还可以加快导出速度。

4、根据where条件导出表

      咱们平常开发的时候,经常会遇到类似的需求,表巨大,直接导出来成本太高了,那就只能加where条件来进行导出了,具体案例如下:

mysqldump -h  [hostname] -u [username] -p   --skip-lock-tables [数据库名]  [表名] --where="log_time >= '2020-07-15 00:00:00' and log_time < '2020-08-12 00:00:00'"  --triggers=false --replace>/home/lijinfeng/test.sql;

注:--where : 直接写where条件即可,单双引号都可以,有人说linux只能用单引号,但双引号也是可以的
-t:只导数据

      此处给出的案例都是博主这边一直在用的,可以放心食用,只要环境没问题,那导出来是妥妥的

end

  • 1
    点赞
  • 2
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 2 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值