Linux中使⽤Shell脚本插⼊mysql数据库中⽂字段值乱码问题问题描述
我在shell脚本写了⼀段insert到mysql的语句,测试语句如下:
mysql -h*** -P3306 -u*** -p*** -D *** -e "insert into test values('123456', '测试')"
1
在插⼊的时候发现数据库中字段值中⽂是乱码,数据库、表、shell脚本设置全是utf8。
解决⽅案
通过在insert sql语句前加⼊set names utf8解决,即:
mysql -h*** -P3306 -u*** -p*** -D *** -e "set names utf8; insert into test values('123456', '测试')"
1
原理
set names utf8指定了客户端连接服务器的编码规则为utf8,两者之间传输消息字符时采⽤的也是utf8,相当于设置以下三个变量:
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;
在linux中下载mysql时冲突是什么

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。