MySQL技巧总结

2018-10-13  本文已影响0人  龙小江i

导入数据

# 登录
mysql --local-infile -u user_name -p
# 导数
load data local infile '文件路径.txt' into table table_name character set utf8 fields terminated by '\t' ignore 1 lines;

中文乱码

# 建表
create table table_name(
field_name varchar(20) default '-' comment '字段注释' collate utf8_bin
);
# cmd登陆
mysql --local-infile -u user_name -p
# 在cmd中导入外部数据
load data local infile '文件路径.txt' into table table_name character set utf8 fields terminated by '\t' ignore 1 lines;

关于第一列第一行数值变成 0

错误原因:文件以utf8-bom编码保存, 有bom的会比无bom的多出3个字节, Windows系统可以自动识别处理,Unix系统则不能识别,导致解析错误
解决方案:更改文件编码为utf8

修改数据库编码为utf8mb4

说得通俗一点,我对于上面的理解是,只要索引字段不超过768/4=192个字符长度,使用 VARCHAR 替代 CHAR 就能达到尽可能多得表示字符,避免字符乱码的目的。
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake=true
上一篇下一篇

猜你喜欢

热点阅读