Welcome 微信登录

首页 / 数据库 / MySQL / 使用mysqlimport 将格式化文件导入MySQL表

创建表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=数据域以什么结束,参数为字符串,默认为 --fields-enclosed-by=数据域用什么符号扩起来,默认为空,一般可以是双引号、括号等--fields-optionally-enclosed-by=数据域可以用什么符号括起来,因为为只有部分数据用这些符号括起来--fields-escaped-by=转义字符,参数为字符,默认为--lines-terminated-by=数据行以什么结束,参数为字符串,windows默认为 --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显示版本信息并退出。使用 load data 将格式化文件导入MySQL表MySQL自动增长字段的设置相关资讯      MySQL数据库教程 
  • MySQL 处理非法数据  (04/09/2013 08:06:28)
  • MySQL关于timestamp和mysqldump的  (12/16/2012 13:25:41)
  • MySQL保证数据完整性  (12/16/2012 12:00:35)
  • ERROR 1130: mysql 1130连接错误的  (12/16/2012 13:29:08)
  • MySQL数据库教程:管理数据库和表(  (12/16/2012 12:47:02)
  • MySQL快速插入大批量数据存储过程  (11/05/2012 19:04:04)
本文评论 查看全部评论 (0)
表情: 姓名: 字数