十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
mysql在linux命令行下导入txt文件
我们提供的服务有:做网站、网站设计、微信公众号开发、网站优化、网站认证、湾里ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的湾里网站制作公司
mysql导入txt的命令如下
但如果在终端中通过
登陆的话,输入以上命令会报错:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
大家不要被报错的表面翻译给误导了,这其实是个权限问题,解决方法如下
在通过终端输入时,加上一个参数--local-infile = 1 详细解释请自行百度。
用下面语句登陆后再进行导入,就成功了
mysqlimport方法导入文件:
其实无论是load data还是mysqlimport,导入是事务,如果不是则设置引擎支持事务。
如何解决大文件导入?当有十几甚至几十G文件需要导入时,因为导入中间可能会失败,如果一次性导入,导入失败会导致回滚,代价太高,从几十G文件中寻找问题也是很头疼的事情。因此,需要先将大文件拆成小文件,比如split命令,按2万行一个单位拆成小文件,以后缀编号区分,编写脚本进行自动导入。如果发生的错误,只需要从小文件中定位问题即可。然后重启导入脚本。
具体操作步骤如下:
1、首先打开Navicat软件,连接到数据库进入需要导入的数据库:
2、然后点击表格,选择右键导入向导,进行导入操作:
3、这里可以选择很多种导入方式,点击文本文件从txt中导入,选择后点击下一步:
4、点击下一步会弹出对话框,选择要导入的文件,双击文件导入即可:
5、导入之后进入下一步,然后设置分隔符,这里不做改变,然后回车进行下一步:
6、然后需要拿表中的元素和txt中的元素的首行做匹配,这里需要一个一个完成:
7、完成手工匹配后点才会开始导入操作,如果有错误信息会在下方显示,没有则会通过:
8、导入时间根据数据量的大小决定,等待片刻就会打入成功,最后打开数据会发现数据已经全部导入了:
1 如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:
load data low_priority infile "/home/mark/data sql" into table Orders;
2 如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。
3 replace和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。例如:
load data low_priority infile "/home/mark/data sql" replace into table Orders;