解决openfire在使用MySQL数据库后的中文乱码问题

合集下载

Linux平台下修正MySQL中文乱码问题

Linux平台下修正MySQL中文乱码问题

Linux平台下修正MySQL中文乱码问题操作系统环境:
RHEL4.6、MySQL 4.1.22
现象:
在此电脑上安装了Tomcat作为web服务器,部署了一个项目,通过jdbc连接到mysql数据库。

但是发现中文输入输出乱码现象。

解决步骤:
1. 找到mysql的配置文件
网上说,mysql的配置文件就是/etc/f。

但是这个文件并不一定存在,由于你可能采取的MySQL安装方式跟网上所说的不一样,就不一定能够找得到/etc/f。

因此,你需要使用find命令查找cnf文件。

记得不要去找f因
2. 打开f修改编码
vi /etc/f --打开f文件
显示结果如下:
在[mysqld]下添加
default-character-set=GBK
在[client]下添加
default-character-set= GBK
3. 重启mysql
根据你安装mysql的方式的不同,采用不用的命令来重启你的mysql。

如果你配置过使用mysqld自启动方式,可以执行“/etc/rc.d/init.d/mysql restart”来重启。

或者你把mysql配置成系统服务的方式,你可以执行“service mysql restart”。

mysql数据库乱码问题

mysql数据库乱码问题

数据库读出乱码解决一、分析常见数据库问题修改MYSQL数据库,数据表,字段的编码(解决JSP乱码)要解决JSP乱码,首先就要了解JSP乱码的原因1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的网页不一致,可能就会造成JSP页面乱码2.在PHPMYADMIN或mysql-front等系统创建数据库时会让你选择一种编码,如果这种编码与你的网页不一致,也有可能造成JSP页面乱码3.创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成JSP 页面乱码5.用户提交JSP页面的编码与显示数据的JSP页面编码不一致,就肯定会造成JSP页面乱码.如用户输入资料的JSP页面是big5码,显示用户输入的JSP页面却是gb2312,这种100%会造成JSP页面乱码6.字符集不正确要注意:1.平时你在某些网站看到的文字可能有几种编码,如你看到一个繁体字,它有可能是big5编码,也有可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点.如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法就是(1)将网站编码设为utf-8,这样可以兼容世界上所有字符,(2)如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为GBK,GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK7.JSP连接MYSQL数据库语句指定的编码不正确8.JSP页面没有指定数据提交的编码,就会造成乱码:所以,JSP乱码的原因无非就是以上几种,知道原因之后,要解决JSP乱码的方法也容易多了我们一一来表达:1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题2.修改数据库编码,如果是数据库编码不正确:可以在phpmyadmin执行如下命令:ALTER DATABASE`test`DEFAULT CHARACTER SET utf8COLLATE utf8_bin以上命令就是将test数据库的编码设为utf83.修改表的编码:ALTER TABLE`category`DEFAULT CHARACTER SET utf8COLLATE utf8_bin以上命令就是将一个表category的编码改为utf84.修改字段的编码:ALTER TABLE`test`CHANGE`dd``dd`VARCHAR(45)CHARACTER SET utf8COLLATEutf8_bin NOT NULL以上命令就是将test表中dd的字段编码改为utf85.如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可,//这个正确就无问题了6.这种情况也是修改页面charset即可,7.在JSP连接数据库的语句中,private String url="jdbc:mysql://localhost/"+DB_NAME+"user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK";//相键要看characterEncoding8.这种乱码的情况,只需在页面开头加上request.setCharacterEncoding("GBK");指定提交的即可注意:按照以上方法修改以后只能保证你新插入的数据不会乱码,举个例:如果你用户已提交的数据是BIG5,你却想通过以上方法改为可以在GB2312的网页正确显示是不可能的,这种文字内码的变换只能通过另写程序来解决,请其它相关文章总结:先要判断JSP乱码是插入数据库之后乱码,还是JSP页面刚提交过来就乱码了,如果JSP 刚接收上一页面的数据显示就乱码了,肯定是字符集不对,可者没有加request.setCharacterEncoding("GBK");如果是数据库的原因就参考上面的2,3,4种方法可能是编码问题这样连接一下数据库看看jdbc:mysql://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8看看能否有效果二、乱码案例使用MYSQL数据库,用JSP去连接结果发现出了很多问题,主要集中在乱码显示上面,实际开发中,想必这类问题是见怪不怪了。

mysql数据库乱码

mysql数据库乱码

彻底解决mysql中文乱码的办法MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!! utf8可以兼容世界上所有字符!!!!Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:mysql不能插入中文默认的是客户端和服务器都用了latin1,所以会乱码。

解决方案:mysql>user mydb;mysql>alter database mydb character set utf8;!另一种方法是直接修改默认的Mysql配置文件在debian环境下,彻底解决mysql无法插入中文和中文乱码的办法上面提到了用临时方法更改数据库的字符集设置,显示中文,但是后来发现在有的系统下并不能成功,比如我用的debian 7.0,找了好久终于找到一个适合debian系统的解决方案,debian 7.0下测试成功,其他诸如修改client和mysql加入default-character-set=utf8的方法之类的,只适用与5.5以前的系统!终极决绝方案,一劳永逸:debian下mysql的字符串修改为utf8(参考:rainysia的专栏)一、进入mysql(mysql -uroot -p),查看当前数据库字符集(status;)二、查看当前系统版本(lsb_release -a)Mysql不能插入中文三、#vim /etc/mysql/f 。

(5.5以前系统)在【client】下面加入default-character-set=utf8在【mysqld】下面加入default-character-set=utf8Notice:注意如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8,仅仅加入到mysqld下面的.client就不需要加了四、#vim /etc/mysql/f 。

解决mysql字体乱码问题

解决mysql字体乱码问题

解决MySQL 5.5的中文乱码问题
1.在mysql压缩目录下,有一堆的参数配置文件,比如:my-innodb-heavy-4G.ini,复制一下这个文件,自己改下名字,比如叫:my.ini……
1.在mysql压缩目录下,有一堆的参数配置文件,比如:my-innodb-heavy-4G.ini,复制一下这个文件,自己改下名字,比如叫:my.ini
2.打开my.ini文件,增加如下参数:[client]:增加default-character-set=utf8参数
以下是代码片段:
[client]
#password = [your_password]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8
[mysqld]:增加如下3个参数
以下是代码片段:
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
# generic configuration options
port = 3306
socket = /tmp/mysql.sock
3.设置完成后,重启下mysql服务
4.连接上你的数据库之后,输入命令:SHOW VARIABLES LIKE '%char%';即可查看到现在你的数据库所使用的字符集了:。

访问MySQL数据库时中文乱码问题分析及解决

访问MySQL数据库时中文乱码问题分析及解决

访问MySQL数据库时中文乱码问题分析及解决使用MySQL保存中文数据时,经常会遇到乱码问题。

产生乱码的原因很多,在笔者以为对MySQL的字符集处理已经很有了解的时候,使用C#编程时,竟再一次遇到了乱码。

联想到前几天一位同事在使用JDBC访问MySQL时遇到的中文乱码问题,决定对MySQL中文乱码问题的产生场景进行一次总结。

一、错误读出现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件、网页查看均正常,使用MySQLcc之类的客户端查看也正常,可是在新写的网页中总是显示乱码。

分析:其它系统都可以正常查看数据,说明数据本身是没有问题的。

在网页中显示乱码,一定是网页的编码字符集和获取到的数据的编码字符集不一至。

比如数据库的字符集是UTF 8的,而网页的字符集是gb2312的,那么网页就会把UTF8编码的字体串当作gb2312的来处理,结果产生乱码。

解决办法:在连接数据库时,设定连接字符集,使连接字符集和当前网页或客户端程序使用的字符集一致。

可以使用MySQL的Set Names指令设定连接字符集。

假设网页的字体集为gb2312。

在连接MySQL后,在连接上执行如下SQL语句:Set Names ‘gb2312’在以后所有这个连接上的查询,MySQL都会自动把数据库中的数据转换成gb2312编码格式传过来。

mysqli_query($db,"SET NAMES 'gb2312'")二、错误写入现象:一个网页或程序向一个MySQL数据库中写数据,写完后,这个网页或程序自己可以正常读取数据,而从其它客户端或网页中读取数据都是乱码。

分析:其它的正常的客户端出现乱码,说明数据库中的字符编码不对。

写数据的那个网页能正常读取,是因为写和读都用了错误的编码格式,将错就错,反而能读出正确的数据了。

比如数据库中设定的字符集为UTF8,而网页使用gb2312编码执行了插入数据的SQL,那么MySQL就会把这些gb2312的编码当成是UTF8的编码写进数据库。

中文乱码解决方案

中文乱码解决方案

中文乱码解决方案中文乱码问题是指在使用计算机软件或操作系统时,中文字符显示为乱码或其他非预期字符的情况。

中文乱码问题通常出现在以下几种情况下:1.编码不一致:中文乱码问题最常见的原因是编码不一致。

计算机中使用的编码方式有很多种,如UTF-8、GB2312、GBK等。

如果文件的编码方式与软件或操作系统的默认编码方式不一致,就会导致中文乱码。

解决该问题的方法是将文件的编码方式转换为与软件或操作系统一致的方式。

2.字体显示问题:中文乱码问题还可能与字体显示有关。

如果计算机中没有安装支持中文的字体,或字体文件损坏,就会导致中文字符显示为乱码或方框。

解决该问题的方法是通过安装正确的字体文件或修复字体文件来解决。

3.网页编码问题:在浏览网页时,如果网页的编码方式与浏览器的默认编码方式不一致,也会导致中文乱码。

解决该问题的方法是在浏览器中手动设置网页编码方式,或在网页头部指定正确的编码方式。

4.数据传输问题:中文乱码问题还可能与数据传输有关。

在进行数据传输时,如果数据的编码方式与传输协议或接收端的要求不一致,就会导致中文乱码。

解决该问题的方法是在数据传输的过程中进行编码转换,或在接收端进行适当的解码操作。

下面是一些常用的解决中文乱码问题的方法:3.设置浏览器编码方式:在浏览器的设置中,可以手动指定网页的编码方式。

可以尝试不同的编码方式,找到正确的方式显示中文字符。

4.检查数据传输设置:如果中文乱码问题是在数据传输过程中出现的,可以检查传输的设置是否一致。

比如,在进行数据库连接时,可以设置数据库的编码方式与应用程序的编码方式一致。

5.使用专业工具:如果以上方法无法解决中文乱码问题,可以考虑使用专业的中文乱码解决工具。

这些工具可以自动检测和修复中文乱码问题,提高处理效率。

总结起来,解决中文乱码问题需要确定问题的原因,然后采取相应的方法进行修复。

在处理中文乱码问题时,尽量使用标准的编码方式和字体文件,避免使用非标准或自定义的编码方式。

怎样解决MySQL中文显示乱码

怎样解决MySQL中文显示乱码

怎样解决MySQL中文显示乱码当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序(mysql, php, query browser, ...)当前使用的字符集不同时,就会造成乱码。

MySQL中默认字符集的设置有四级:服务器级,数据库级,表级。

最终是字段级的字符集设置。

注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。

所以我们建议要用show create table table ; 或show full fields from tableName;来检查当前表中字段的字符集设置。

专职优化、域名注册、网站空间、虚拟主机、服务器托管、vps主机、服务器租用的中国信息港来为你做详细介绍!MySQL 中关于连接环境的字符集设置有 Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。

这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。

基本上99%的乱码由些造成。

乱码后需要检查的信息。

1. 数据库表中字段的字符集设置。

show create table TableName或show full columns from tableNamemysql> show create table t1;+-------+------------------------------------| Table | Create Table+-------+------------------------------------| t1 | CREATE TABLE `t1` (`id` int(11) NOT NULL,`c1` varchar(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk |+-------+------------------------------------1 row in set (0.00 sec)mysql> show full columns from t1;+-------+-------------+----------------+------+-----+-| Field | Type | Collation | Null | Key |+-------+-------------+----------------+------+-----+-| id | int(11) | NULL | NO | PRI || c1 | varchar(30) | gbk_chinese_ci | YES | |+-------+-------------+----------------+------+-----+-2 rows in set (0.00 sec)mysql>2. 当前联接系统参数show variables like 'char%'mysql> show variables like 'char%';+--------------------------+----------------| Variable_name | Value+--------------------------+----------------| character_set_client | gbk| character_set_connection | gbk| character_set_database | latin1| character_set_filesystem | binary| character_set_results | gbk| character_set_server | latin1| character_set_system | utf8| character_sets_dir | C:/Program File+--------------------------+----------------8 rows in set (0.00 sec)mysql>1. 中文,请确保表中该字段的字符集为中文兼容:big5 | Big5 Traditional Chinesegb2312 | GB2312 Simplified Chinesegbk | GBK Simplified Chineseutf8 | UTF-8 Unicode2. 确保,联接参数与这个字段字符集一致,你可以用 set name 'charsetname';比如,set name 'gbk';这条命令会同时修改character_set_client,character_set_connection,character_set_results (如果你的这架MySQL中都为中文,则你可以在my.ini或f中加上或修改这个参数, 参数文件修改后需重启MySQL服务)[mysql]default-character-set=gbk3. PHP 乱码,同样 mysql_query("set name 'gbk'"); 其它API也类似。

MySQL中的字符集转换与乱码问题解决方法

MySQL中的字符集转换与乱码问题解决方法

MySQL中的字符集转换与乱码问题解决方法在使用MySQL数据库时,我们经常会遇到字符集转换和乱码的问题。

正确地处理字符集转换和乱码是确保数据库存储和检索数据的关键。

本文将探讨MySQL 中的字符集转换与乱码问题,并提供解决方法。

一、字符集与编码首先,我们需要了解字符集和编码的概念。

字符集是一组字符的集合,而编码则是将字符集中的字符映射到二进制数据的规则。

常见的字符集有ASCII、Unicode和UTF-8等,而编码方式有UTF-8、GBK、Latin1等。

在MySQL中,字符集用来定义存储和处理文本数据的规则,而编码则是实际使用的二进制编码。

如果字符集和编码不一致,就会导致数据存储和检索时出现乱码问题。

二、MySQL中的字符集设置在MySQL中,字符集设置是通过修改服务器、数据库、表和列的字符集属性来实现的。

1. 服务器字符集设置在MySQL配置文件(f)中,可以设置服务器的默认字符集和排序规则。

通过编辑f文件,找到[mysqld]节点,在其下方添加如下内容:```shell[mysqld]...character_set_server=utf8mb4collation_server=utf8mb4_unicode_ci...```这样,服务器的默认字符集就被设置为utf8mb4,并且排序规则为utf8mb4_unicode_ci。

2. 数据库字符集设置在MySQL中,每个数据库都有一个特定的字符集和排序规则。

可以通过以下命令创建一个指定字符集的数据库:```sqlCREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci;```这样,创建的数据库就拥有utf8mb4字符集和utf8mb4_unicode_ci排序规则。

3. 表和列的字符集设置在创建表时,可以指定表和列的字符集和排序规则。

例如,创建一个使用utf8mb4字符集的表:```sqlCREATE TABLE table_name (col1 VARCHAR(255) CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci,col2 TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci);```这样,表和列的字符集就被设置为utf8mb4,并且排序规则为utf8mb4_unicode_ci。

Mysql中文乱码问题完美解决方案

Mysql中文乱码问题完美解决方案

转载:Mysql中文乱码的解决方法第一种方法,很精辟的总结:经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧:WINDOWS 下导入应该这样使用MYSQL的命令在DOS 命令下进入mysql的bin目录下,输入mysql -uroot -p密码数据库名称<要恢复的数据库, 例如我们要把D盘的一个名称为test.sql的数据库恢复到本地的test2这个数据库,那么就这样: mysql -uroot -p密码test2以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。

只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);mysql_query("SET NAMES 'GBK'");数据库字符集为utf-8连接语句用这个mysql_query("SET NAMES 'UTF8'");mysql_query("SET CHARACTER SET UTF8");mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");还有个方法就是,如果你自己的机器的话,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5这两个版本中有效。

mysql数据库乱码问题总结

mysql数据库乱码问题总结

Mysql数据库乱码总结今天又独到了Mysql乱码问题,过去总是匆匆的解决了就算了。

这次我实在受不了了。

每次都是迷迷糊糊的改好的。

这次决定好好探索一把,看了很多资料及博客之后才理解了点。

先记录下来。

如有不对的请指正。

1. 首先Mysql是在4.0之后才支持多字符集的。

所以只有4.0之后才会出现这种问题。

编码转换的规则就是,在输入数据时将编码由“客户端编码”转换为“服务器端编码”,输出时将数据由“服务器端编码”转换为“客户端编码”。

MySQL的字符集处理是这样的:1、发送请求。

1)客户端发送请求到服务器端。

2)服务器端会把请求的数据从客户端字符集(character_set_client)转成服务器连接字符集(character_set_connection)。

3)然后服务器会检测存储区域(table,column)的字符集,然后把数据从连接字符集(character_set_connection)转为存储区域(table,column)的字符集,然後再存储或者查询。

2、返回请求。

1)服务器将存储区域(table,column)的字符集转换成服务器连接字符集(character_set_connection)。

2)将服务器连接字符集(character_set_connection)转换成结果字符集(character_set_results),再发送到客户端。

首先我们看下mysql>status;我们可以看到四个字符集的设置。

1.改变my.ini文件中的编码可以改变所有的字符集。

2.set names "uf8" 可以改变 Client conn这两个字符集。

3.建立数据库时的设置编码可以改变DB 这个。

知道了,原理之后我开始解决今天遇到的问题。

1.在其他地方正常显示中文。

但是在CMD中不能显示显示乱码。

首先我设置了my.ini将字符集全部设置为utf8。

个人感觉utf8是趋向标准的。

Mysql 乱码的解决

Mysql 乱码的解决

Mysql 乱码的解决Mysql 乱码的解决首先在命令行下进入mysql编辑模式输入mysql&gt;show variables like ‘char%’; 查看数据库字符集设置client、connection、result 和命令行客户端相关(windows 下命令行客户端必须要设置gbk )database server system 和服务器相关字符集(system字符集不可修改)* 实际开发中建议大家将database 和server 字符集设置为utf8修改完database server system 和服务器相关字符集后需要重新启动mysql才能生效在服务里重启就可以,还可以,在命令行:停止命令:net stop mysql启动命令:net start mysqlmysql核心配置文件my.ini 如果linux f[mysql] 主要配置命令行客户端参数default-character-set=gbk ---- 影响client、connection、result[mysqld] 配置服务器参数character-set-server=utf8 ----- 影响database server备注:如是win7系统的话,因为权限问题不让修改,你可以把文件拷贝出来,修改完在放回去,(主要是是mysql安装在C盘会出现这样的问题)如果服务器server 字符集已经设置utf8 建立数据库数据表默认utf8 ----- 插入数据一定没有乱码如果服务器没有设置server字符集,默认latin1 , 建立数据库指定字符集utf-8 建表指定字符集utf-8 (有乱码)解决方案一:设置server 字符集,重新建立数据库和表解决方案二:jdbc:mysql:///db?useUnicode=true&amp;characterEncoding=utf-8 (默认传输字符集utf8/gbk)。

如何解决MySQL中文乱码和字符集问题

如何解决MySQL中文乱码和字符集问题

如何解决MySQL中文乱码和字符集问题MySQL是一种开源的关系型数据库管理系统,被广泛用于各种业务应用和网站开发中。

然而,在处理中文字符时,MySQL往往会遇到乱码和字符集问题,给使用者带来很多麻烦。

本文将探讨如何解决MySQL中文乱码和字符集问题,并提出一些优化建议。

一、了解字符集和字符编码在解决MySQL中文乱码和字符集问题之前,我们首先需要了解一些基本概念,即字符集(Character Set)和字符编码(Character Encoding)。

字符集是一种规范,用于定义字符的集合和字符的规则。

常见的字符集有ASCII、UTF-8、GBK等。

字符编码是字符集在计算机中存储和传输的方式。

常见的字符编码有ASCII、UTF-8、UTF-16、GB2312等。

二、设置数据库、表和字段的字符集和字符编码解决MySQL中文乱码和字符集问题的第一步是正确设置数据库、表和字段的字符集和字符编码。

1. 设置数据库字符集和字符编码在创建数据库时,可以指定数据库的字符集和字符编码。

例如:CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,数据库的字符集就被设置为utf8mb4,字符编码则是utf8mb4_unicode_ci。

确保数据库的字符集和字符编码与应用程序及其它组件保持一致。

2. 设置表的字符集和字符编码在创建表时,也可以指定表的字符集和字符编码。

例如:CREATE TABLE mytable (id INT,name VARCHAR(30)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,表的字符集和字符编码与数据库保持一致。

3. 设置字段的字符集和字符编码在创建字段时,可以指定字段的字符集和字符编码。

例如:CREATE TABLE mytable (id INT,name VARCHAR(30) CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci);这样,字段的字符集和字符编码与表保持一致。

mysql中文乱码问题的解决方法【详细】

mysql中文乱码问题的解决方法【详细】

mysql中文乱文问题1Mysql数据库1.1安装数据库mysql1.2常见错误下载并安装1.3安装mysql管理工具SQLyogSQLyog的安装和使用方法:https:///qq_32534441/article/details/849695491.4创建数据库和表1.4.1常见错误(1)插入数据时,注意逗号与下一个字段间有空格,否则会报错。

(2)Mysql数据库中输入中文乱码解决乱码的方法如下:第一步:找到安装mysql的目录找到my.ini 文件;第二步:使用记事本打开my.ini文件,找到这个地方看看default-character-set 是不是utf8不是的话改为utf8即可!(以前的版本可能没有这句话直接加上就好了!)# MySQL client library initialization.[client]port=3306[mysql]default-character-set=utf8第三步:在mysql数据库cmd中输入:show variables like'%char%';Show create database test;Show create table student;查看数据库的编码格式!第四步:改变原有数据库的编码方式:set character_set_database=utf8;set character_set_server=utf8;set character_set_client=gbk;set character_set_connection=gbk;set character_set_results=gbk;set names gbk;最后的编码格式为:第五步:将列的编码也改为utf8第六步:去掉隐藏语言选项前的勾,并将表中需要显示中文的列的字符编码改为utf8。

mysqljdbc中文乱码解决方案

mysqljdbc中文乱码解决方案

mysqljdbc中⽂乱码解决⽅案对于mysql数据库⽽⾔,解决中⽂乱码,可以从两个⽅向考虑,⼀个是通过修改mysql服务器端的配置⽂件/etc/mysql/f来⽀持中⽂,⽐如:...[mysql]default-character-set=utf8...但是,修改配置⽂件需要重启服务,尤其是对于已经在线上运⾏的数据库或者“⽼”的数据库实例(有可能是多实例或集群)⽽⾔,显然通过修改配置⽂件来操作是不适合的,甚⾄是不被DBA允许的,通常能想到的办法是在客户端或者JDBC连接时定制⽀持中⽂的编码格式(通常使⽤UTF-8),这样插⼊数据的时候,让mysql为⾃动为我们转码,可⾏的办法有两种:1、如果是通过DriverManager.getConnection(url)编码⽅式操作JDBC,可以在JDBC的url中追加useUnicode=true&characterEncoding=UTF-8解决乱码问题。

jdbc.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-82、如果是通过其它数据源,⽐如DBCP、tomcat-jdbc、c3p0、spring-jdbc、hibernate读取配置⽂件,在url中追加useUnicode=true&characterEncoding=UTF-8是不起作⽤的,⽽是通过数据源⾃⾝的配置⽣效,⽐如下列配置:<!-- Tomcat data source --><bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${ername}"/><property name="password" value="${jdbc.password}"/><property name="dbProperties"><props><prop key="useUnicode">yes</prop><prop key="characterEncoding">utf8</prop></props></property><!-- Configuration refer to optimizing connection performance --><property name="initialSize" value="10"/><property name="maxActive" value="100"/><property name="maxIdle" value="50"/><property name="minIdle" value="10"/><property name="suspectTimeout" value="60"/><property name="timeBetweenEvictionRunsMillis" value="30000"/><property name="minEvictableIdleTimeMillis" value="60000"/><property name="testOnBorrow" value="true"/><property name="validationQuery" value="SELECT 1"/><property name="validationInterval" value="30000"/><!-- End Configuration refer to optimizing connection performance --></bean>其中:<props><prop key="useUnicode">yes</prop><prop key="characterEncoding">utf8</prop></props>等价于url中的useUnicode=true&characterEncoding=UTF-8查看当前数据库的字符集(切换到某个数据库前后⽐较):mysql> show variables like'char_%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | latin1 || character_set_filesystem |binary|| character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir |/usr/share/mysql/charsets/|+--------------------------+----------------------------+8 rows in set (0.00 sec)mysql>use robot_classifymark;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with-ADatabase changedmysql> show variables like'char_%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | utf8 || character_set_filesystem |binary|| character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir |/usr/share/mysql/charsets/|+--------------------------+----------------------------+8 rows in set (0.00 sec)可以看到数据库robot_classifymark采⽤的是utf8编码的,正好对应创建数据库时指定的编码,对应建库SQL:CREATE DATABASE IF NOT EXISTS robot_classifymark DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;如果想在命令⾏下插⼊中⽂,可以执⾏set names utf8,此命令会影响三个参数:mysql> show variables like'char_%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | utf8 || character_set_filesystem |binary|| character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir |/usr/share/mysql/charsets/|+--------------------------+----------------------------+8 rows in set (0.00 sec)mysql>set names utf8-> ;Query OK, 0 rows affected (0.00 sec)mysql> 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 | latin1 || character_set_system | utf8 || character_sets_dir |/usr/share/mysql/charsets/|+--------------------------+----------------------------+8 rows in set (0.00 sec)可见:执⾏命令set names utf8,影响了三个参数:character_set_client,character_set_connection,character_set_results,如此,可以在当前命令⾏下插⼊中⽂了,但是,此命令只对当前命令⾏有效(*),如果想每次登⼊mysql命令⾏都⽣效,同样需要修改mysql服务器端的配置⽂件/etc/mysql/f...[client]default-character-set=utf8...所以,如果JDBC连接时,如果url未指定useUnicode=true&characterEncoding=UTF-8,可以变相的通过每次执⾏insert或select语句之前先执⾏set names utf8来插⼊或查询中⽂,显然,此⽅式没有在url中指定useUnicode=true&characterEncoding=UTF-8或者通过上⾯的数据源配置形式简洁!。

MySQL插入中文数据乱码解决

MySQL插入中文数据乱码解决

MySQL插⼊中⽂数据乱码解决问题描述:1、在命令⾏中进⾏插⼊,没有问题。

但是显⽰存在部分乱码2、在JDBC中插⼊成功、中⽂是直接以“??”形式显⽰。

通过Navicat客户端查看与在⽹页中看到的⼀⼀致,说明读取没有问题,问题定位在写⼊数据或存储数据的编码有问题。

解决⽅案:当向 MySQL 数据库插⼊⼀条带有中⽂的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员⼯!'); 出现乱码时,使⽤语句 show variables like 'character%'; 来查看当前数据库的相关编码集。

可以看到 MySQL 有六处使⽤了字符集,分别为:client 、connection、database、results、server 、system。

其中与服务器端相关:database、server、system(永远⽆法修改,就是utf-8);与客户端相关:connection、client、results 。

保证每⼀项的编码统⼀就不会产⽣乱码,当然⽀持中⽂的话也可以改成gbk,gb2312,utf-8等,建议是utf-8。

在mysql中默认字符集是latin1,他是不⽀持中⽂的client为客户端使⽤的字符集。

connection为连接数据库的字符集设置类型,如果程序没有指明连接数据库使⽤的字符集类型则按照服务器端默认的字符集设置。

database为数据库服务器中某个库使⽤的字符集设定,如果建库时没有指明,将使⽤服务器安装时指定的字符集设置。

results为数据库给客户端返回时使⽤的字符集设定,如果没有指明,使⽤服务器默认的字符集。

server为服务器安装时指定的默认字符集设定。

这个实用_MySql数据库乱码关键处理的方法与总结

这个实用_MySql数据库乱码关键处理的方法与总结

MySql数据库乱码关键处理的方法与总结mysql乱码处理总结:(1)java中处理中文字符正常,在cmd client中显示乱码是字符集的问题.(2)字段长度设置够长,但插入中文字符时提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column错误是字符集的问题.(3)乱码问题归根到底是字符集的问题,那就从字符集设置方面考虑,不外乎下面几个方面: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=gbkdefault-collation=gbk_chinese_ci(3)数据库连接串中指定字符集URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUn icode=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: Data truncation: Data too long for column等问题.Mysql中文乱码解决原来常常在群里看到mysql的乱码问题,但是由于本人一直在用oracle和sql server所以没多在乎,昨天用了用mysql结果就遇到了传说中的乱码…..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解决openfire在使用MySQL数据库后的中文乱码问题
openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据
存储可以采用多种数据库,如MySQL,Oracle等。

在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,
而且从现象上可以看出openfire内部的一些机制。

实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等。

如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的。

接下来重启一下openfire,再用建立的帐号登录
客户端或进入后台管理端查看,会发现所有的中文全都变成了问号。

登录到数据库中进行查看,发现所有的中文字符也均为问号,这说明了两个问题:
openfire具有应用层缓存
数据库编码存在问题
解决办法其实也很简单,首先要保证你为openfire创建的数据库编码是utf8的,建表语句如下:
create database openfire default character set utf8 default collate utf8_general_ci
当你原来就创建好数据库时,你可以用:
alter database openfire default character set utf8 default collate utf8_general_ci;
其次,在初始化openfire数据库,即第一次配置openfire服务器时,在连接数据库那里的连
接串要加入字符编码格式,必须在连接里增加UTF8的编码要求,连接字符串设置如下:
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8
如果已经安装完成,这个配置也是可以改动的,直接到openfire的安装目录下,找到
conf/openfire.xml这样一个文件,打开找到如下的XML节,修改其中的serverURL即可
<database>
<defaultProvider>
<driver>com.mysql.jdbc.Driver</driver>
<serverURL>jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&amp;characterEncodi ng=utf8</serverURL>
注意:由于&具有特殊含义,因此原&符号必须被转义为&amp;。

相关文档
最新文档