zoukankan      html  css  js  c++  java
  • mysql导出指定字段或指定数据到文件中

    使用mysqldump把mysql数据库的数据导出到文件中还是挺方便的;
    比如说要导出baijunyao数据库;

    // mysqldump -u用户名 -p 数据库名 [表名]> 导出的文件名
    mysqldump -uroot -p baijunyao > baijunyao.sql
    Bash

    导出baijunyao数据库中的users表;

    mysqldump -uroot -p baijunyao users > baijunyao.sql
    Bash

    但是有时候当表的数据比较多的时候;
    整张表都导出的话就比较坑爹了;
    我只是想要两列的内容;
    而你却给了我整个世界;
    这时候就需要一个导出指定字段的方法了;
    比如说导出users表的id和name字段;

    mysql -uroot -p baijunyao -e "SELECT id,name from users INTO OUTFILE'/tmp/bjy_users.sql'"
    Bash

    然而;如果人品不好的话;
    可能看到的是如下错误;

    ERROR 1290 (HY000) at line 1: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
    请容许我做一个悲伤的表情;
    这个时候;登录mysql;
    执行如下命令;

    show variables like '%secure%';
    Bash


    主要是看 secure_file_priv ;
    意思就是必须导出到 secure_file_priv 指定的目录下;

    mysql -uroot -p baijunyao -e "SELECT id,name from users INTO OUTFILE'/var/lib/mysql-files/baijunyao.sql'"
    Bash

    罢特;如果赶上本命年还没穿红;
    secure_file_priv 的 value 为 NULL;
    则代表不允许导出;
    好吧;这人品;也就告别自行车了;
    别放弃治疗;咱找到mysql的配置项文件my.cnf;
    在 [mysqld] 下面添加;

    [mysqld]
    secure_file_priv = 指定目录
    Bash

    最后再来个彩蛋;
    咱还可以再进一步;
    在限制指定字段的情况下;
    还可以用where限制条数;
    撒气矮子;

    mysql -uroot -p baijunyao -e "SELECT id,name from users where id>10 INTO OUTFILE'/var/lib/mysql-files/baijunyao.sql'"
    Bash

     

  • 相关阅读:
    服务器 container
    oracle误操作表数据--回退(闪回)被提交后的数据
    在线笔记类
    idea maven项目使用过程中遇到的问题
    程序员提升网站
    检索网站
    公开课
    语言学习
    超强/超全面计算网站
    临时邮箱申请
  • 原文地址:https://www.cnblogs.com/microtiger/p/7798817.html
Copyright © 2011-2022 走看看