您好,欢迎访问一九零五行业门户网

导入数据到mysql的一种简单的方法_MySQL

因为ubuntu默认自带的mysql版本为5.5,并不能使用load data infile这种高级的功能,因此我们写了一个通用的脚本来上传文件
shell脚本
cat ./employee.csv | while read line do eval $( echo $line | awk -f ',' '{print ds=$1 ;id=$2 ;name=$3}' ) echo ds=$ds id=$id name=$name mysql -uroot -p655453 test --default-character-set=utf8 -e replace into wechat_employee values('$ds','$id','$name')done
要导入数据到mysql最重要的一点就是要三码合一,即client和server的编码还有表的编码要一致,server的编码可以在/etc/mysql找一下配置文件修改,客户端的编码在insert之前可以设置一下,可以忽略
show variables like '%char%';+--------------------------+----------------------------+| variable_name | value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+
查看表的编码,不是utf8的话要修改
mysql> show create table wechat_employee;+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| table | create table |+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| wechat_employee | create table `wechat_employee` ( `ds` varchar(20) default null, `femployeeid` int(20) default null, `femployeename` varchar(256) default null) engine=innodb default charset=utf8 |+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)
接着导入,大功告成
其它类似信息

推荐信息