当前位置: 首页 > news >正文

centos上mysql乱码6,centos6.5和centos7.5统一字符集为zh_CN.UTF-8解决系统和MySQL数据库乱码问题...

标签:

linux的服务器需要做的操作

centos6.5下:

修改默认字符集为 zh_CN.UTF-8,如果没有中文语言包可能需要安装中文语言包支持

[root@meinv01 ~]# yum groupinstall chinese-support

[root@meinv01 ~]# cat /etc/sysconfig/i18n    #<==修改此配置文件为如下

LANG="zh_CN.UTF-8"

SYSFONT="latarcyrheb-sun16"

[root@meinv01 ~]# source /etc/sysconfig/i18n

[root@meinv05 ~]# date                            #<==验证

2018年 12月 21日 星期五 19:22:43 CST

centos7.5系统:

与centos6.5不太一样,需要做以下操作调整字符集为 zh_CN.UTF-8

[root@meinv05 ~]# locale -a|grep zh_CN*        #<==查看当前系统是否安装中文语言包

zh_CN

zh_CN.gb18030

zh_CN.gb2312

zh_CN.gbk

zh_CN.utf8

如果没有安装中文语言包,使用以下2条命令中其中一条安装中文语言包即可

[root@meinv05 ~]# yum install -y kde-l10n-Chinese

[root@meinv05 ~]# yum groupinstall -y "fonts"

[root@meinv05 ~]# locale -a|grep zh_CN*        #<=再次查看确保系统已安装下列中文语言包

zh_CN

zh_CN.gb18030

zh_CN.gb2312

zh_CN.gbk

zh_CN.utf8

[root@meinv05 ~]# echo $LANG       #<==查看当前字符集

en_US.UTF-8

[root@meinv05 ~]# vi /etc/locale.conf       #<=编辑配置文件修改默认的英文字符集为以下

LANG="zh_CN.UTF-8"

[root@meinv05 ~]# cat /etc/locale.conf

LANG="zh_CN.UTF-8"

[root@meinv05 ~]# source /etc/locale.conf

[root@meinv05 ~]# locale

LANG=zh_CN.UTF-8

LC_CTYPE="zh_CN.UTF-8"

LC_NUMERIC="zh_CN.UTF-8"

LC_TIME="zh_CN.UTF-8"

LC_COLLATE="zh_CN.UTF-8"

LC_MONETARY="zh_CN.UTF-8"

LC_MESSAGES="zh_CN.UTF-8"

LC_PAPER="zh_CN.UTF-8"

LC_NAME="zh_CN.UTF-8"

LC_ADDRESS="zh_CN.UTF-8"

LC_TELEPHONE="zh_CN.UTF-8"

LC_MEASUREMENT="zh_CN.UTF-8"

LC_IDENTIFICATION="zh_CN.UTF-8"

LC_ALL=

[root@meinv05 ~]# date             #<==验证

2018年 12月 21日 星期五 19:22:43 CST

MySQL数据库需要做的操作

1.编译安装MySQL时,指定MySQL数据库默认的字符集为zh_CN.UTF-8,使用到的参数如下:

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \

2.修改MySQL数据库配置文件 /etc/my.cnf 中相关参数

[root@meinv05 ~]# cat /etc/my.cnf          #<==注意此修改不能使用echo追加的方法,因为此配置文件是对应模块的,echo追加对于修改不生效

[client]                   #<==在[client]字段里加入default-character-set=utf8

default-character-set=utf8[mysqld]                     #<==在[mysqld]字段里加入character-set-server=utf8(MySQL5.5版本以上使用)

port = 3306                   #<==在[mysqld]字段里加入default-character-set=utf8(MySQL5.1版本以下使用)

socket = /var/lib/mysql/mysql.sock

character-set-server=utf8[mysql]                   #<==在[mysql]字段里加入default-character-set=utf8

no-auto-rehash

default-character-set=utf8

注意:修改完成后,重启mysql服务就生效(如果仅仅是修改MySQL客户端就无需重启服务直接生效),[mysqld]字段与[mysql]字段是有区别的,一起更改。

进入MySQL命令行界面下,验证字符集是否全部是 zh_CN.UTF-8

mysql> show variables like 'character_set%';

+--------------------------+-------------------------------------------+

| 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 | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /application/mysql-5.5.32/share/charsets/ |

+--------------------------+-------------------------------------------+

8 rows in set (0.00 sec)

小结

字符串显示乱码的罪魁祸首是字符集不统一,最大程度上规避乱码问题要注意以下几点

Linux服务器字符集,Linux服务器的链接终端,MySQL客户端/服务端(编译安装,二进制解压,yum,创建库和表等),开发的程序所有的字符集都需要统一

生产环境业务上线前统一好字符集,尽量避免字符集不统一造成的乱码

MySQL数据库统一字符集,如有特殊需求,使用单独MySQL数据库或者使用MySQL多实例区分特殊字符集的程序

标签:

来源: https://www.cnblogs.com/blog-tim/p/10154967.html

相关文章:

  • php odbc 中文,ODBC - [ php中文手册 ] - 在线原生手册 - php中文网
  • matlab频率采样法设计FIR滤波器,用频率采样法设计FIR滤波器
  • php 单独验证码可以显示_但调用验证码时无法显示,ThinkPHP(SAE)调用验证码不能正确调用验证码...
  • php中转源码,PHP 转 ASCII
  • php+5+windows,PHP5终极安装——PHP5+IIS5+Windows2000Server
  • php网站目录禁止访问,禁止访问Apache目录
  • php上传打包下载,php在线打包下载
  • 52进制 java,Java实现的26进制转换
  • php自我介绍50字,简短自我介绍50字
  • matlab 添加子图图案,matplotlib给子图添加图例的方法
  • oracle exp exp-00056,ORACLE导出报EXP-00056错误解决办法
  • net网页,连接oracle数据库,.net程序远程连接Oracle数据库
  • 教务管理系统 免费 php,php教务信息发布与管理系统
  • php 多点到线距离,双绞线的通信距离是多少
  • oracle客户端没有tnsnames,安装好Oracle Client以后没有tnsnames.ora文件
  • 2017前端实习生面试总结
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Docker入门(二) - Dockerfile
  • ES6 学习笔记(一)let,const和解构赋值
  • FastReport在线报表设计器工作原理
  • Java多态
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 微信小程序开发问题汇总
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​业务双活的数据切换思路设计(下)
  • (1)bark-ml
  • (13)Hive调优——动态分区导致的小文件问题
  • (a /b)*c的值
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (第一天)包装对象、作用域、创建对象
  • (二)springcloud实战之config配置中心
  • (十八)SpringBoot之发送QQ邮件
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)大型网站架构演变和知识体系
  • .NET 5种线程安全集合
  • .NET Micro Framework初体验(二)
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [CSS] 点击事件触发的动画
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例
  • [flask] flask的基本介绍、flask快速搭建项目并运行
  • [JavaWeb玩耍日记]Maven的安装与使用
  • [jQuery]10 Things I Learned from the jQuery Source
  • [jQuery]使用jQuery.Validate进行客户端验证(中级篇-上)——不使用微软验证控件的理由...
  • [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'XXX' 无效