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 #<==如果使用mysqlbinlog命令查看log-bin日志出错,可把此行注释掉或者删除不加此行
[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多实例区分特殊字符集的程序
centos6.5和centos7.5统一字符集为zh_CN.UTF-8解决系统和MySQL数据库乱码问题的更多相关文章
- MySQL字符集设置—MySQL数据库乱码问题
MySQL(4.1以后版本) 服务器中有六个关键位置使用了字符集的概念,他们是:client .connection.database.results.server .system.MySQL有两个字 ...
- centos6.5和centos7如何搭建php环境
作者:白狼 出处:http://www.manks.top/linux_php.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责 ...
- Centos6.5和Centos7 php环境搭建如何实现呢
首先我们先查看下centos的版本信息 代码如下: #适用于所有的linux lsb_release -a#或者cat /etc/redhat-release#又或者rpm -q centos-rel ...
- 在my.ini文件中配置mysql统一字符集
测试的mysql版本为:5.7.14 查看mysql字符集命令: show variables like 'character_set_%'; 以下是在my.ini文件中配置mysql统一字符集参数: ...
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- MySQL数据库指定字符集
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的编 ...
- centos7 mysql数据库的安装与使用
一:数据库的安装 第一步 下载数据库到主机,, 第二步 通过xshell将数据库压缩包上传至centos7虚拟主机(#注意:服务器主机需下载上传工具lrzsz 命令:yun -y install ...
- centos7环境配置haproxy实现mysql数据库和redis代理服务器
centos7环境配置haproxy实现mysql数据库代理 我们通常会碰到这样的业务场景: b主机和c数据库在同一个内网,a主机不能直接访问c数据库,我们可以通过在b主机上搭建代理让a访问c数据库, ...
- (转)修改及查看mysql数据库的字符集
原文:http://www.cnblogs.com/donqiang/articles/2057972.html Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / - ...
随机推荐
- Linux初始化Git环境
第一步:设置Git全局用户名和邮箱 git config --global user.name "你的用户名" git config --global user.email &qu ...
- GStreamer基础教程13 - 调试Pipeline
摘要 在很多情况下,我们需要对GStreamer创建的Pipeline进行调试,来了解其运行机制以解决所遇到的问题.为此,GStreamer提供了相应的调试机制,方便我们快速定位问题. 查看调试日志 ...
- 玩转Django2.0---Django笔记建站基础十三(第三方功能应用)
第13章 第三方功能应用 在前面的章节中,我们主要讲述Django框架的内置功能以及使用方法,而本章主要讲述Django的第三方功能应用以及使用方法.通过本章的学习,读者能够在网站开发过程中快速开发网 ...
- 客户端 jQuery 跨端口 调用 node 服务端
一句话 很顶用 response.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:8020'); 说 响应的头文件里设置 一个 h ...
- 个人第4次作业—Alpha项目测试
这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求 团队名称 CTRL_IKUN(团队博客) 这个作业的目标 对非本小组的三个项目进行软件测试 一.测试人员个人信息 学号 201731032 ...
- python 3 创建虚拟环境(Win10)
python 3 创建虚拟环境(Win10) ①为什么要用虚拟环境? 为了解决一个环境多个项目的版本冲突问题 ②如何创建虚拟环境? 用窗口键+R来打开win10的运行窗口,然后在运行输入框输入cmd, ...
- 一次完整的OCR实践记录
一.任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别,涉及保密的原因,这里就不能粘贴出具体的图片了,下面粘贴出一张类似需要识别的图片. 假如说我的数据源如上图所示,那么我需要做的工作就是将上 ...
- 云原生 - Istio可观察性之分布式跟踪(三)
作者:justmine 头条号:大数据与云原生 微信公众号:大数据与云原生 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便阅读,微信公众号已按分类排版,后续的文 ...
- sys model 常见用法
import sys #与python解释器 交互 print(sys.argv) #是一个列表 解释器执行文件名后面可以增加字符串 以列表元素形式添加进去def foo(): print('ok') ...
- 【Nginx入门系列】第四章 通过域名匹配虚拟主机,不修改端口
域名访问原理 我们在显示生活中,我们怎样通过一个域名来访问到我们所需要的网站呢? 例如www.baidu.com,我们在浏览器输入百度网址会先发送请求到DNS服务器,DNS会通过我们的域名解析百度对应 ...