MySQL 字符编码总结
今天操作服务器数据库时遇到了Mysql中文字符乱码的问题,主要原因是因为安装的时候没有设置好字符集。
很是郁闷,因为库里有很多重要数据,所以重装是不可能了,于是决定找找在不重装且不改代码的前提下,能搞好的解决方案。
于是看了很多这方面的文章,最终得以解决:以下是解决方案。
mysql乱码处理总结
java中处理中文字符正常,在cmd client中显示乱码是字符集的问题.
字段长度设置够长,但插入中文字符时提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column错误是字符集的问题.
乱码问题归根到底是字符集的问题,那就从字符集设置方面考虑,不外乎下面几个方面:server,client,database,connection,results.
-------------------------解决办法----------------------
1.修改 my.ini(MySQL Server Instance Configuration 文件)
# CLIENT SECTION [client] port=3306 [mysql] default-character-set=gbk
# SERVER SECTION [mysqld] default-character-set=gbk
2.修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=gbk default-collation=gbk_chinese_ci
3.数据库连接串中指定字符集
URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk
注:在mysql4.1.0版 要加useUnicode=true&characterEncoding=gbk 如果是5.0版以上的,加不加都是没有关系的!
4.在创建数据库时指定字符集 create database yourDB CHARACTER SET gbk;
5.在dos命令上要设置 set names gbk
好了,经过检查上面几个方面的设置,应该 OK 了!不会出现诸如 com.mysql.jdbc.MysqlDataTruncation:Datatruncation: Data too long for column等问题。
Mysql中文乱码解决 原来常常在群里看到mysql的乱码问题,但是由于本人一直在用oracle和sql server所以没多在乎,昨天用了用mysql结果就遇到了传说中的乱码…..。
现在我们来讲讲mysql的乱码问题。首先你进入的你mysql 用show variables查看 这里可以查看到你的字符集,character_set_server是服务器编码。现在我们默认的是latin1要改变服务器的编码必须重新启动服务器,我们先用mysqladmin -uroot shutdown关闭服务器,然后mysqld -C GBK启动服务器
-C是character_set_server的一个简写(可以也可以写成mysqld -character_set_server gbk).这样修改以后我们再进入mysql查看就会显示: 这样我们就把服务器和数据库的编码改为了GBK。 现在我们就可以插入中文字符串了,但是为什么有时间还是会显示 Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation:Datatruncation: Data too long for column 'name' at row 1
这是因为你只是修改了mysql的服务器的字符编码,并没有修改已经有数据库的编码,这时候你需要手动的把data目录下的数据库中的db.opt中的编码改为 default-character-set=gbk default-collation=gbk_chinese_ci 这样修改以后你在重启服务器就可以插入中文了。 但是这时候还有个问题就是在你应用程序当中显示的是中文字符,但是在命令窗口还是乱码。 这时候你注意我们上面图中的character_set_client字符还是latin1当然显示的是乱码咯哟。所以你进入mysql客户端程序的时候因该把客户端默认的编码改为gbk才能显示正常。 你可以在mysql里修改,也可以在登陆的时候mysql -uroot -default-character-set=gbk修改 如此以来就解决了中文问题了。
我刚开始的时候在程序中加入了一个characterEncoding变量,但是想来想去都觉得这个变量没什么用,所以后来去掉也能显示正常。总结下mysql的乱码问题最好还是设置数据库的时候就把服务器编码和数据库编码都设置长gbk,还有就是注意查看系统变量。
MySQL 字符编码总结的更多相关文章
- 修改数据库mysql字符编码为UTF8
Mysql数据库是一个开源的数据库,应用非常广泛.以下是修改mysql数据库的字符编码的操作过程. 步骤1:查看当前的字符编码方法 mysql> show variables like'char ...
- linux mysql字符编码问题
发布:thatboy 来源:脚本学堂 [大 中 小] 本文介绍下,linux环境中mysql字符编码问题的解决办法,有遇到mysql编码问题的朋友,可以参考下本文的介绍,希望对你有一定的帮 ...
- mysql字符编码集(乱码)问题解决
1.创建数据库 CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 创建表 CREATE TABLE tp_w ...
- 修改mysql字符编码出现Job failed to start解决办法
从网上找到如下资料: $sudo gedit /etc/mysql/my.cnf [client]下添加: default-character-set=utf8 [mysqld]下添加: de ...
- mysql 字符编码设置
安装mysql时如果字符编码为默认值latin1,则需要修改为utf8以便支持中文数据. 命令如下: 1.显示数据库字符集 mysql> show create database test;+- ...
- mysql字符编码的设置以及mysql中文乱码的解决方法
查看字符编码 首先,将中文插入到数据库乱码是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,应该设置为utf8查看自己的数据库编码是否已设置好,进入数据库,输 ...
- MySQL 字符编码问题详细解释
http://www.codesoil.net/tag/charset Character Set Problem in PHP + MySQL4.1+ 和许多人一样,我也是在转移blog时才发现这个 ...
- 关于xampp mysql字符编码与编译器编码不匹配问题
今天,在php中对数据库字符字段进行查询的时候,语法之类的完全正确,但是就是查询不到结果,而在命令行中,同样的语句却能获得预期的功效.经多方面的了解之后才发现是字符编码不匹配的原因.在这里,把我的解决 ...
- mysql set names 命令和 mysql 字符编码问题
先看下面的执行结果: (root@localhost)[(none)]mysql>show variables like 'character%'; +--------------------- ...
随机推荐
- C++ string append()添加文本
C++ string append()添加文本 1. C++ string append()添加文本 使用append()添加文本常用方法: 直接添加另一个完整的字符串: 如str1.append( ...
- js-监听页面滚动
两种监听页面滚动的方法 一.原生js通过window.onscroll监听 window.onscroll = function() { //为了保证兼容性,这里取两个值,哪个有值取哪一个 //scr ...
- js百度地图-简单的1个坐标点
要学习百度地图,最好的地方就是去看百度地图API: 案例: <!DOCTYPE html> <html> <head> <meta http-equiv=&q ...
- Codeforces 1037F. Maximum Reduction
总感觉我这种做法会T,一直没写,看了其他人的题解也是这样,,,就果断写了,,可能数据不太深,或者玄学复杂度 题意即求xk-1长度的所有区间的最大值的和,对每一个i(数组下边),他对答案的贡献数量就是在 ...
- [POI2014]Ant colony
题目大意: 给定一棵$n(n\le10^6)$个结点的树.在每个叶子结点,有$g$群蚂蚁要从外面进来,其中第$i$群有$m_i$只蚂蚁.这些蚂蚁依次爬树(一群蚂蚁爬完后才会爬另一群),若当前经过结点度 ...
- Bluetooth篇 开发实例之八 匹配
自己写的App匹配蓝牙设备,不需要通过系统设置去连接. 匹配和通信是两回事. 用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK ...
- PHP安全相关的配置
PHP作为一门强大的脚本语言被越来越多的web应用程序采用,不规范的PHP安全配置可能会带来敏感信息泄漏.SQL注射.远程包含等问题,规范的安全配置可保障最基本的安全环境.下面我们分析几个会引发安全问 ...
- linux命令行翻页
在linux上面执行命令,若命令太多屏幕显示不完,通过Shift+pageup/pageDown来查看. putty连接linux后执行就不存在这个问题.
- 【spring boot】【mybatis】spring boot中mybatis打印sql语句
spring boot中mybatis打印sql语句,怎么打印出来?[参考:https://www.cnblogs.com/sxdcgaq8080/p/9100178.html] 在applicati ...
- jquery验证表单代码
代码如下: //开始验证-修改用户密码 $('.editUserPwd').validate({ /**//* 设置验证规则 */ rules: { lname:{ required:true, st ...