使用mysqlimport 将格式化文件导入mysql表

原创 2011年07月12日 16:53:01

创建表Spam



看一下要插入的数据文件



mysql可执行文件mysqlimport还有一个mysql命令中的load data两个命令可以从文件中把格式化的数据导入数据库,如果有一个包含大数据量的文件,可以实现快速的数据导入

mysqlimport的用法如下:

/usr/local/mysql/bin/mysqlimport [options] db_name textfile1 [textfile2 ...]

其中db_name为要插入的数据库名字,textfile为要插入的格式化数据所在的文件,文件里的数据插入到文件名去掉后缀后剩余名字对应的表中

比如:mysqlimport [省略选项] Statistic Spam.txt

会把Spam.txt中的数据插入到数据库名为Statistic,表名为Spam的数据表中

而且Spam.txt文件必须在 /usr/local/mysql/var/Statistic/ 目录下【即/usr/local/mysql/var/库/】

刚开始的时候没注意文件的路径,返回以下错误:

[root@mx1 /tmp/KevinShell/statistic]# /usr/local/mysql/bin/mysqlimport -uUSER -pPASSWD -hlocalhost -P3306 Statistic Spam.txt
/usr/local/mysql/bin/mysqlimport: Error: File '/usr/local/mysql/var/Statistic/Spam.txt' not found (Errcode: 2), when using table: Spam


之后又做了纠正,成功插入数据

[root@mx1 /tmp/KevinShell/statistic]# cp Spam.txt /usr/local/mysql/var/Statistic/
[root@mx1 /tmp/KevinShell/statistic]# /usr/local/mysql/bin/mysqlimport -uUSER -pPASSWD -hlocalhost -P3306 Statistic Spam.txt


再次查看一下表Spam,已经将数据成功插入,而且与Spam.txt文件中的数据是一样的



   下面介绍一些mysqlimport常用到的选项

--columns=第一列对应的数据表列名,第二列对应的数据表列名,…

定义被导入文件中的每一列对应的数据库表列名

--fields-terminated-by=

数据域以什么结束,参数为字符串,默认为\t

--fields-enclosed-by=

数据域用什么符号扩起来,默认为空,一般可以是双引号、括号等

--fields-optionally-enclosed-by=

数据域可以用什么符号括起来,因为为只有部分数据用这些符号括起来

--fields-escaped-by=

转义字符,参数为字符,默认为\

--lines-terminated-by=

数据行以什么结束,参数为字符串,windows默认为\r\n

--user=user_name -u user_name

--password[=password] -p[password]

--host=host_name -h hostname

--port=port_num-P port_num

定义用户名、密码、mysql服务器ip用于连接的TCP/IP端口号,默认为mysql默认端口3306

--ignore-lines=n

忽视数据文件的前n行,因为很多数据文件前面有表头

--delete -D

在把文件中的数据插入前删除表中原先的数据

--local -L

指定从客户端电脑读入数据文件,否则从服务器电脑读取

--lock-tables -l

处理文本文件前锁定所有表以便写入确保所有表在服务器上保持同步

--protocol={TCP | SOCKET | PIPE | MEMORY}

使用的连接协议

--force -f

忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件

不使用--force,如果表不存在则mysqlimport退出

--compress -C

压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩)

--silent-s

沉默模式只有出现错误时才输出

--socket=path-S path

当连接localhost时使用的套接字文件(为默认主机)

--verbose-v

冗长模式。打印出程序操作的详细信息。

--version-V

显示版本信息并退出。



MySQL使用mysqlimport命令导入文本文件

MySQL使用mysqlimport命令导入文本文件 MySQL中,可以使用mysqlimport命令将文本文件导入到MySQL数据库中。基本的语法格式如下: mysqlimport -u r...
  • wendi_0506
  • wendi_0506
  • 2015-07-31 20:48:28
  • 4344

mysql导入单个表和多个表的数据

前提是使用mysqldump命令导出表的数据 方式1 导入某个表数据: 1、连接到数据库  mysql -u root -p --socket=/home/vpnmysql/mysql/mysql.s...
  • amberinheart
  • amberinheart
  • 2015-12-07 11:36:55
  • 4628

mysql中导入txt文件数据的操作指令

mysql中导入txt文件数据的操作指令 2013-03-15 14:16:38     我来说两句       作者:moonfans 收藏    我要投稿 mysql中导入t...
  • dy357978912
  • dy357978912
  • 2014-04-04 16:51:56
  • 2004

Windows下用命令行导出导入MySQL数据库

方法1:添加“系统环境变量”。我的电脑>属性>高级>环境变量,在“系统变量”栏目下找到 path 双击编辑。先添加;(分号),再添加MySQL安装目录下bin文件夹(包含mysql.exe和mysql...
  • pengone
  • pengone
  • 2016-11-24 14:36:28
  • 687

mysqlimport 导入文件

1).mysqlimport的语法介绍:   mysqlimport位于mysql/bin目录中,是mysql的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数 以...
  • a14206149
  • a14206149
  • 2014-06-30 13:20:02
  • 1678

MySQL数据导入导出方法与工具mysqlimport

MYSQL 导入 txt文件 关键字: mysql mysqlimport  今天同事问起MySQL导入txt文件...用mysqlimport 工具。~帮忙调试。。。。自己测试通过 mysql...
  • wulantian
  • wulantian
  • 2013-01-18 10:45:28
  • 23870

mysqlimport将日期时间戳NULL值导为“0000-00-00 00:00:00”修复笔记

近来有一个MySQL表跨服务器增量同步更新的需求,就想到写一个Shell脚本(http://blog.csdn.net/sweeper_freedoman/article/details/545860...
  • sweeper_freedoman
  • sweeper_freedoman
  • 2017-01-17 20:50:58
  • 1203

Mac 下Python import mysql库时报错的问题及处理

问题描述:      Mac环境下使用pip install mysql 后在Python环境中import MySQLdb报错, 报错信息如下:     >>> import MySQLdb Tra...
  • yyj185
  • yyj185
  • 2017-03-08 19:33:55
  • 918

db2 export和inport命令相关

  • 2015年07月29日 18:19
  • 24KB
  • 下载

mysql导出导入一张表

 导出 mysqldump -u user -p db tab1 tab2 > db.sql  导入 mysql>drop tab1; mysql>drop tab2; mysql -u user -...
  • zzz_781111
  • zzz_781111
  • 2009-05-15 18:27:00
  • 11455
收藏助手
不良信息举报
您举报文章:使用mysqlimport 将格式化文件导入mysql表
举报原因:
原因补充:

(最多只允许输入30个字)