问题一:
Windows下的xls文件必须先转成csv格式才能导入Linux下的MySQL
问题二:
导入数据应该先设置成为非严格模式,否则因为创建表时数据类型与csv中数据的种种不匹配,会导致导入失败,报错信息是“拒绝访问”,Linux下设置非严格模式的MySQL命令如下
mysql>set @@sql_mode=ANSI
问题三:
需要导入的csv文件不能在任意文件夹下,必须在MySQL的file中
用下面的命令找到mysql-files
find \ -name mysql-files
用下面的命令将你的csv文件拷贝到mysql-files文件夹中
cp yourcsv.csv ../mysql-files/
注意:yourcsv.csv应该写全路径名,mysql-files应该根据你找到的路径名写全路径名,上面的这一条命令只说明格式,不是你应该输入的内容,如果你还有问题应该查看cp命令的相关内容
问题五:
必须先将csv文件放在MySQL的files文件夹内才能导入,否则报错“secure-file-priv”
解决:
首先查看MySQL的files文件在哪里
mysql>show global variables like '%secure_file_priv%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_file_priv | NULL |
+------------------+-------+
不能直接修改secure_file_priv的值,应该打开my.cnf(注意Linux下是.cnf,windows下是.ini),加入以下语句后重启MySQL
secure_file_priv="
问题六:
csv数据中有中文,各种乱码
解决方法如下(每一步都应该设置)
- Linux终端设置了utf8编码(google可直接得到方法,廖雪峰的网站也有)
- 导入的csv文件是utf8编码(可在Windows的Excel里另存为的时候选择utf8)
- 创建的表是utf8编码(见下面解决方法3)
- 导入数据的时候是utf8编码(见下面解决方法4)
- Linux系统语言应该改成utf8编码(谷歌可直接得到方法,菜鸟教程也有)
解决方法4:导入数据的时候是utf8编码,MySQL导入数据的命令如下
mysql>LOAD DATA INFILE '/var/lib/mysql-files/yourcsv.csv'
>into table `Order` character set utf8
>fields terminated by ',' optionally encloaed by '"' escaped by '"'
>lines terminated by '\r\n';
说明:
- 注意设置编码的部分character set utf8
- 注意 csv文件的分隔符是逗号,换号是\r\n,optionally部分是可选项,是单引号包括一个双引号
版权声明:本文为weixin_40546361原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。