向MySQL中导入CSV

Gmail联系人导入MySQL时遇到乱码问题及解决方案
本文详细介绍了从Gmail中导出联系人并将其导入MySQL数据库时遇到乱码问题的原因,并提供了解决方法。通过对比Unicode和Unicode(UTF-8)的区别,指导读者正确处理CSV文件编码,确保数据导入顺利无误。

今天想把Gmail中的联系人列表导入到数据库中,发现google.csv文件实在事无巨细,什么姓啊,名啊,住址啊,很多都是在同一列中组织的很混乱。

结果我对其进行了瘦身,只保留里Name,Email和Addr,然后将其导入的MySQL中,导入倒是成功了,可是效果不尽人意。

乱码!乱码!可恶的乱码!

用Openoffice打开google.csv时有个预处理提示,选项如图:


虽然preview中显示的排版没有问题,可是打开后就凌乱了。

Unicode和Unicode(UTF-8)到底有什么区别?

我凌乱了!

### 如何在 MySQL导入 CSV 文件 要在 MySQL 数据库中成功导入 CSV 文件,可以使用 `LOAD DATA INFILE` 语句。这种方法高效且灵活,适用于大多数场景。 #### 使用 LOAD DATA INFILE 导入 CSV 文件 以下是具体的操作方法: 1. **确保目标表存在** 需要提前创建好用于存储 CSV 数据的目标表,并确认其结构与 CSV 文件中的列匹配[^1]。 2. **设置 SQL 语句** 下面是一条典型的 `LOAD DATA INFILE` 命令示例: ```sql LOAD DATA INFILE 'F:/MySqlData/test1.csv' INTO TABLE student FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; ``` 这里的命令指定了 CSV 文件的位置、分隔符以及行结束符等参数[^2]。 3. **处理字符集问题** 如果 CSV 文件包含特殊字符或者中文内容,则需要指定正确的字符编码。例如,在 UTF-8 编码的情况下,可以在命令中加入 `CHARACTER SET utf8` 参数[^3]: ```sql LOAD DATA INFILE '/path/to/yourfile.csv' INTO TABLE your_table_name CHARACTER SET utf8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; ``` 4. **解决权限问题** 默认情况下,MySQL 可能会限制某些目录下的文件访问权限。可以通过修改配置项 `secure_file_priv` 来允许加载特定位置的文件[^3]。如果遇到权限错误,建议将 CSV 文件移动至服务器默认的安全路径下再尝试重新执行命令。 5. **验证数据导入结果** 完成导入之后,可通过查询来检验数据是否正确写入数据库: ```sql SELECT * FROM student; ``` #### 图形化工具辅助方式 除了命令行外,还可以借助图形界面工具简化流程。比如 Navicat Premium 提供了直观的方式让用户完成从本地磁盘上传并映射到远程数据库的任务[^5]。按照提示逐步填写相关信息即可实现自动化迁移过程而无需手动编写复杂脚本。 ```python # Python 示例代码展示如何调用 subprocess 模块运行上述 sql 命令 import subprocess command = """ mysql -u root -p password database_name <<EOF LOAD DATA INFILE '/var/lib/mysql-files/data.csv' INTO TABLE target_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'; EOF """ subprocess.call(command, shell=True) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值