`

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

阅读更多

操作系统环境:

RHEL4.6、MySQL 6

现象:

在此电脑上安装了Tomcat作为web服务器,部署了一个项目,通过jdbc连接到mysql数据库。但是发现中文输入输出乱码现象。

解决步骤:

1. 找到mysql的配置文件

网上说,mysql的配置文件就是/etc/my.cnf。但是这个文件并不一定存在,由于你可能采取的MySQL安装方式跟网上所说的不一样,就 不一定能够找得到/etc/my.cnf。因此,你需要使用find命令查找cnf文件。记得不要去找my.cnf因为它不一定存在,而应该 找*.cnf。

# find / -iname '*.cnf' -print
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/mysql-test/std_data/ndb_config_mycnf2.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/mysql-test/std_data/ndb_config_mycnf1.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/mysql-test/std_data/bug15328.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/support-files/my-huge.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/support-files/my-large.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/support-files/my-medium.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/support-files/my-innodb-heavy-4G.cnf
/usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/support-files/my-small.cnf
/usr/share/ssl/openssl.cnf

找到之后,复制一个出来
# cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf

2. 打开my.cnf修改编码

# vi /etc/my.cnf

在[mysqld]下添加
default-character-set=utf8

在[client]下添加
default-character-set=utf8

3. 重启mysql

根据你安装mysql的方式的不同,采用不用的命令来重启你的mysql。如果你配置过使用mysqld自启动方式,可以执行
# /etc/rc.d/init.d/mysql restart
来重启。
或者你把mysql配置成系统服务的方式,你可以执行
# service mysql restert

但是如果你仅仅按照INSTALL-BINARY来启动mysql的话,如
shell> bin/mysqld_safe --user=mysql &
那么你可能需要找出mysql的进程,然后kill了它们。如
# ps -aux | grep mysql
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
root 24246 0.0 0.0 4532 1076 pts/7 S 13:36 0:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 24273 0.0 1.0 305872 43712 pts/7 S 13:36 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/cmmi.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock
从显示出来的结果找到进程id,杀掉他们
# kill -9 24246
# kill -9 24273
最后再重启。

4.登录mysql看看修改成功否

# mysql
mysql> show variables like 'character_set_%';
+--------------------------+-----------------------------------------------------------+
| Variable_name | Value |<!-- IWMS_AD_BEGIN-->

<script src="http://www.linuxidc.com/system/system60.js" type="text/javascript"></script><script type="text/javascript">&lt;!-- google_ad_client = &quot;pub-5195587195407606&quot;; /* Linuxidc 468x60, ������ 08-8-31 */ google_ad_slot = &quot;9963827011&quot;; google_ad_width = 468; google_ad_height = 60; //--&gt; </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><script>google_protectAndRun(&quot;ads_core.google_render_ad&quot;, google_handleError, google_render_ad);</script>
<!-- IWMS_AD_END-->
+--------------------------+-----------------------------------------------------------+
| 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/local/mysql-6.0.16a-linux-i686/share/mysql/charsets/ |
+--------------------------+-----------------------------------------------------------+
8 rows in set (0.00 sec)

mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

5. 修改已经部署的数据库编码

# mysql
mysql>use dbname
mysql>alter database dbname character set utf-8;

或者修改这个数据库的文件 $mysql_data_path/dbname/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci

default-character-set=utf8
default-collation=utf8_general_ci

重启mysql。

6. 以后创建数据库时,为了保险起见,你可以指定编码创建:

# mysql
mysql>create database dbname character set utf-8;

7. 检查你的Java应用的JDBC连接字符串

设置好数据库的编码后,在连接数据库时候,应该指定connection的编码,比如使用jdbc连接时,指定连接为utf8方式。

分享到:
评论

相关推荐

    史上最全的PHP+MySql中文乱码解决方案.docx

    此外,对于在Windows环境下运行的PHP程序,由于其文件系统对UTF-8编码的处理方式与Linux不同,可能会在处理文件路径或内容时出现乱码问题。例如,`move_uploaded_file()`等函数在处理UTF-8编码的文件名时可能会报错...

    mysql乱码的解决

    MySQL乱码问题是一个常见的困扰,尤其对于处理中文字符时更为突出。解决这个问题的关键在于确保操作系统、数据库和程序编码三者之间的一致性,通常推荐使用UTF-8编码格式,因为UTF-8支持广泛的语言和字符集,包括...

    解决mysql5中文乱码问题的方法

    在使用MySQL5数据库时,有时会遇到中文字符显示为乱码的问题,这通常是由于字符集配置不正确导致的。本文将详细介绍如何解决MySQL5中的中文乱码问题。 首先,我们需要理解字符集和校对(Collation)的概念。字符集...

    linux下redmine安装及常见问题faq

    【Redmine在Linux下的安装与常见问题】 Redmine是一款开源的项目管理软件,适用于团队协作和任务跟踪。本文将详细介绍如何在Linux环境下,特别是Redhat Linux 5.5上安装Redmine 2.0及其相关组件,以及解决可能出现...

    XPCMS v1.5 php mysql 免费版.rar

     8、修正文件管理器乱码问题。  9、增加申请链接、下载统计、站内搜索、随机文章功能。  10、所有需要修改模板文件的地方已可以在后台代码块处直接修改。  11、默认主题美化,默认安装将不会有初始数据,安装...

    Discuz! v2.0 0820修正繁体版.zip

    这个修正繁体版专门针对繁体中文用户,优化了界面显示和语言支持,解决了原版在繁体环境下可能出现的问题,如乱码、排版不正等,确保了繁体用户能有更好的使用体验。 三、核心功能 1. 用户注册与管理:Discuz! 提供...

    nServer-v2.1023[FTP + MYSQL + HTTP + PHP(FCGI)]

    - FTP服务器(FileZilla)中文乱码问题 2012年09月18日 - 修正php文件浏览器的安全BUG 2012年09月17日 - 更新PHP版本为5.2.17为Thread Safe 线程安全 - PHP版本为5.2.17 加入对Zend支持 - PHP版本为5.2.17 更新...

    KingCMS企业版(PHP)2009 正式版 V6.0.813.rar

    修正标签乱码问题 修正安装程序计算时区错误的问题,安装时自动设置服务器所在时区 修改安装时的默认数据库为Sqlite 修正kc_icon函数的图片链接提示无法显示的Bug 修正一些模板中的笔误 删除文章后...

    ShopNC网上商城综合性多用户版 v2.7 build 20100901.rar

    采用UTF-8编码,内建多语版本,可自行添加任意语言,有效避免浏览器乱码问题; 高性能: 采用Zend Optimizer做最佳化处理,数据库优化、页面缓存,性能优越,为服务器减压提高性能,支持大流量网站; 高安全:...

    UniDAC 8.4.1源码+官方编译

    UniDAC(Universal Data Access Components)是一个强大的数据库连接组件库,专为开发者提供跨平台的数据访问解决方案。在8.4.1版本中,它包含了一系列改进和修复,特别是针对红鱼儿发现的bug进行了修正,提高了软件...

    轻量级企业网站管理系统 DouPHP v1.0 BETA2 0909

    该源码是官方版的轻量级企业网站管理系统 DouPHP v1.0 BETA2 0909,系统DouPHP 是一款轻量级企业网站管理系统,基于PHP+Mysql架构的,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,系统搭载Smarty模板引擎...

    DouPHP轻量级企业网站管理系统 v1.1 Release 20140708

    DouPHP 是一款轻量级企业网站管理系统,基于PHP+Mysql架构的,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,系统搭载Smarty模板引擎,支持自定义伪静态,前台模板采用DIV+CSS设计,后台界面设计简洁明了,...

    网址网站导航整站源码

    *解决个别linux环境下,网址导航首页无法生成的问题 *修复删除所有数据后“查看所有分类”不能显示的问题 V1.12 升级补丁包 (2009年7月26日发布) *优化静态页生成功能,提高生成速度,解决php5环境下生成...

    最新版114啦2010.9.23更新.rar

    *解决个别linux环境下,网址导航首页无法生成的问题 *修复删除所有数据后“查看所有分类”不能显示的问题 V1.12 升级补丁包 (2009年7月26日发布) *优化静态页生成功能,提高生成速度,解决php5环境下生成...

    ET_deliver发货单查询系统 3.0.zip

    本程序是在linux下开发—–其实我觉得在linux下开发并没有什么好说的,但是觉得写上会给人一种牛B的错觉;其实我说这个的目的是告诉你为什么我们的压缩包格式不是rar——- 安装方式: 由于程序很简单,所以也就...

    ShopEx商店系统 4.8.5.82977

    5、修正部分用户中文规格值无法保存的问题 6、修复会员登录输入错误时提示乱码的问题 7、修复后台访问量统计为0的问题 8、修复部分用户订单列表报SQL错 9、修复部分用户快递单模版无法启用和关闭 10、修复表...

    易语言程序免安装版下载

    6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...

    2021-2022计算机二级等级考试试题及答案No.12640.docx

    MySQL支持多种操作系统平台,如Windows、Linux、Mac OS等(正确答案:A)。此外,MySQL是一种开源的关系型数据库管理系统,广泛应用于Web开发中。 ### 15. Java.awt包中的布局管理器 Java.awt包提供了多种布局管理...

    AKCMS轻量级CMS系统源码 v5.3.7

    2 修正了某些情况下,涉及接口的数据出现乱码的BUG 3 放宽安全检测功能对包含ID的参数的校验规则,包含字母也视为正常 4 修正了PHP5.3+中开启AKCMS的调试模式后提示未来会删除不建议使用的警告信息的问题 5 修正...

Global site tag (gtag.js) - Google Analytics