客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案

最近在制作一个安装包,需要安装的时候执行mysql脚本儿,做了一个批处理,但是发现总是执行到
插入中文的时候报错,或者插入中文是乱码。

网上查了好多资料,说是把编码改成GBK什么的,终究还是不成功。

最后经过多次测试,现把解决方案分享给大家。

第一步:打开mysql中的配置文件,my.ini,看一看配置文件中

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

   看是不是这样配置的。因为utf8
是国际通用的,网上说改成gbk什么的,是不对的,因为很多国外浏览器,都支持utf8,但是换成gbk即使插入数据库,中文不是乱码,

 是正常的,当你用某些主流浏览器时,读出来显示的也是乱码。所以建议配置还是用utf8.

这两个配置也是mysql默认的配置,不用改他。那么真正能影响乱码的是,cmd链接mysql的时候。

举个例子:

mysql>uroot p123456

回车

或者网上很多说是这样子:

mysql>uroot p123456 --default-character-set=GBK

回车

以上两种链接方式,都会造成乱码。

重要:下面才是正确的链接方法:

mysql>uroot p123456 --default-character-set=utf8

mysql 保持链接,客户端,服务端,三个地方编码一致,才能不出现乱码。

今天的分享就到这里,至于正确性,我测试了,是正确的。

如果有朋友测试,我的做法还是错我的,请留言告诉我,我清理该帖子,免得误导大家。哈哈

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案,布布扣,bubuko.com

时间: 2024-08-02 02:50:43

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案的相关文章

MySql数据库执行insert时候报错:Column count doesn't match value count at row 1

遇到这个问题之后,第一反应就是前后列数不等造成的,但是我检查SQL之后,发现列数是相同得,但是插入还是有问题,然后又写了简单得SQL只插入不为空得字段,执行还是报这个错,最后请教了高人,指点之后,大概是因为当前插入得表被锁住了,然后执行下面得SQL后,之前得SQL就可以正常插入了 LOCK TABLES `system_function_info` WRITE;  UNLOCK TABLES; MySql数据库执行insert时候报错:Column count doesn't match val

MySql 插入数据库报错 Incorrect string value: '\xF0\xA0\x86\xA2'

今天从nginx日志分析搜索关键字,然后把关键字插入到Mysql数据库里,出现如下错误 SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\xA0\x86\xA2' for column 'XXXX' at row 38; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\xA0\x86\xA2' for column

mysql插入数据 报错[Err] 1136 - Column count doesn't match value count at row 1(表中有自增列)

版本:8.0.16 创建了一张表:create table user_table(uid int primary key auto_increment,uname varchar(10))auto_increment=1 插入数据报错: 经查找 ,有三种方式可以解决这个问题: 1.插入数据得时候,带入列名: insert into user_table("uname") values ("刘一") 2.自增键这列设置为0 insert into user_table

mac系统中搭建apache+mysql+php的开发环境,安装mysql后,登录报错:mac ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

php新手在mac系统中搭建apache+mysql+php的开发环境(按照这篇博客来操作的:http://my.oschina.net/joanfen/blog/171109?fromerr=xvCsafCe),在安装配置mysql完毕后,登录mysql,报错:mac ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),折腾很久,终于解决,随手记录下,备忘. 解决方法: 第一步:如

MYSQL 添加外键报错

2014年6月16日 10:48:51 出错的部分提示摘录: #1452 - Cannot add or update a child row: a foreign key constraint fails result 2 when explaining filename '#sql-3d5_204369' 解决办法: pma 中同时执行两条语句: set foreign_key_checks = 0; ALTER TABLE `table_name` ADD CONSTRAINT `fk_n

django admin 中文报错incorrect string value解决方案

对于错误" Incorrect string value: '\xE6\xA2\xB5\xE8\x92\x82...'for column 'object_repr' at row 1 解决方法是设置django_admin_log表的object_repr一项使用utf8_unicode_ci: 对于错误"  Incorrect string value: '\xE6\xA2\xB5\xE8\x92\x82...'for column 'change_message' at row

MySQL root密码重置 报错:mysqladmin: connect to server at 'localhost' failed的解决方案

===========================================================二,忘记本地root的登录密码解决过程:1.编辑/mysql/my.ini在[mysqld] 配置部分添加一行skip-grant-tables 2.保存后重启mysql[[email protected] etc]# service mysqld restartShutting down MySQL.                                      

mysql执行update语句时报错:Data truncation: Truncated incorrect DOUBLE value: 'null'

出现这个问题的原因网上有说是update的参数连接符要用,而不是and,但是我遇到的不是这个. 我出现问题的原因是,在update语句的where中varchar类型的字段我直接用了数字类型 update address set province = '北京' where userId = 250; userId是varchar类型的,报错Data truncation: Truncated incorrect DOUBLE value: 'null' 改成这样就可以了 update addre

mysql执行SQL语句时报错:[Err] 3 - Error writing file '/tmp/MYP0G1B8' (Errcode: 28 - No space left on device)

问题描述: 今天一同事在mysql中执行SQL语句的时候,报了/tmp空间不足的问题,报错如下: [SQL] SELECT f.prov as 字段1, MAX( CASE f.flag_name WHEN '字段1' THEN f.num ELSE 0 END ) AS '字段1', MAX( CASE f.flag_name WHEN '店员量' THEN f.num ELSE 0 END ) AS '字段1', MAX( CASE f.flag_name WHEN '字段1' THEN f