提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、安装
- 就一条,下载页面里要找 MySQL Community Server,而不是
MySQL Installer for Windows,这样才能找到64-bit最新版本!
二、导入import数据
1、mysqlimport.exe
该命令基本用法如下:
cmd> mysqlimport -u -p mydatabase mytable.txt
但是要正确导入数据,要检查以下几点:
-
使用的数据库用户是否有导入数据权限
-
MySQL
secure-file-priv选项如何配置,如果secure_file_priv=null,则禁止导入导出文件;如果secure_file_priv="D:\SOME DIRECTORY\Uploads",则只允许在该目录下导入导出文件,且这个路径可以更改;secure_file_priv="",则导入导出没有限制mysql> show variables like "secure_file_priv"; +------------------+---------------------------------------------+ | Variable_name | Value | +------------------+---------------------------------------------+ | secure_file_priv | D:\Yun Sync\MySQL\MySQL Server 8.3\Uploads\ | +------------------+---------------------------------------------+ 1 row in set, 1 warning (0.00 sec) -
Windows CMD 终端中,正确使用命令参数,要根据数据文件实际情况指明
--fields-*、--lines-*等参数,注意其中路径反斜线、空格、双引号等特殊字符,下面这个是能够正确运行的,其中把反斜线换成正斜线,包裹字段的双引号变成\"(外面不用再加双引号也可以),含空格的路径以及Windows换行符号都加上双引号:cmd> mysqlimport -uroot -p --fields-optionally-enclosed-by="\"" --lines-terminated-by="\r\n" mydatabase "D:/Yun Sync/MySQL/MySQL Server 8.3/Uploads/mytable.txt" -
mytable.txt 数据文件是否包含表头,如果包含,要在导入命令中增加参数
--ignore-lines=1 -
数据文件中日期类型字段格式是否规范,
mysqlimport.exeprefer 日期格式为YYYY-MM-DD(后面还可以有小时、分、秒),当数据文件中日期格式为MM-DD-YYYY是不行的,不知道有没有合适参数能够在导入过程中转换成正确的形式,类似insert into命令中可以使用的str_to_date函数
2、mysql console 导入
mysql> LOAD DATA INFINE 'D:\\MySQL Data\\Uploads\\mytable-data.txt'
-> into table mytable
-> fields terminated by '\t'
-> enclosed by '"'
-> lines terminated by '\r\n'
-> ignore 1 lines
-> (col1, col2, @col3) -- 使用变量接收col3字段
-> SET col3 = NULLIF(@col3, ''); -- 将空字符串转为NULL
几点说明
- 最后1行
SET col3 = NULLIF(@col3, '')能把空字符串转为NULL. 这样做的目的是解决表中该字段非字符串类型无法接受""(空字符串), 这个挺有意思的! - 对于已经存在的表, 还可以这样来调整
mysql> update mytable set colx=NULL WHERE colx='';
本文介绍了如何在Windows上安装MySQLCommunityServer,重点讲解了mysqlimport.exe的正确使用方法,包括数据库用户权限设置、secure_file_priv选项配置,以及处理数据文件中的表头、日期格式等问题。
377

被折叠的 条评论
为什么被折叠?



