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)

小結

  1. 字符串顯示亂碼的罪魁禍首是字符集不統一,最大程度上規避亂碼問題要注意以下幾點
  2. Linux服務器字符集,Linux服務器的鏈接終端,MySQL客戶端/服務端(編譯安裝,二進制解壓,yum,創建庫和表等),開發的程序所有的字符集都需要統一
  3. 生產環境業務上線前統一好字符集,盡量避免字符集不統一造成的亂碼
  4. MySQL數據庫統一字符集,如有特殊需求,使用單獨MySQL數據庫或者使用MySQL多實例區分特殊字符集的程序

?

轉載于:https://www.cnblogs.com/blog-tim/p/10154967.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件項目管理(三)

上次講完了項目初始部分&#xff0c;包括立項、招投標、授權 在進入第二部分&#xff0c;項目計劃 前我們要先了解軟件的需求以及任務的分解 軟件需求管理 軟件需求定義&#xff1a;用戶對軟件功能和性能的要求 軟件需求管理過程&#xff1a;需求獲取、需求分析、需求規格…

Winform-圖片上傳

1.界面上拖個.pictureBox(pictureBox1) //上傳點擊按鈕 private void button1_Click(object sender, EventArgs e) { OpenFileDialog fileDialog new OpenFileDialog(); DialogResult result fileDialog.ShowDialog(); if (result DialogResult.OK) { this.pictureBox1.Imag…

moment.js 快捷查詢

格式化日期 當前時間&#xff1a;moment().format(YYYY-MM-DD HH:mm:ss); //2014-09-24 23:36:09 今天是星期幾&#xff1a;moment().format(d); //3 轉換當前時間的Unix時間戳&#xff1a;moment().format(X); 相對時間 20120901相對當前日期是2年前moment("20120901&quo…

My97 DatePicker獲取自定義日期的前一天

1.控件&#xff0c;獲取第一個input中的時間&#xff0c;再將這個時間的前一天賦值給第二個input <input type"text" class"form-control input-sm" id"recordTime" style"width:145px" οnclick"WdatePicker({onpicked:chang…

Underscore.js 源碼學習筆記(下)

上接 Underscore.js 源碼學習筆記&#xff08;上&#xff09; 756 行開始 函數部分。 var executeBound function(sourceFunc, boundFunc, context, callingContext, args) {if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);var self …

軟件項目管理(四)

上一篇介紹了軟件項目的需求分析和任務分解&#xff0c;即軟件項目的范圍計劃&#xff0c;那么對于一個軟件項目來說&#xff0c;我們還需要知道它需要多少時間多少成本&#xff0c;如何得到這些數據就是這次要解決的問題&#xff0c;即項目的成本計劃 在項目未完成之前誰也不…

js中的時間與毫秒數互相轉換

【1】js毫秒時間轉換成日期時間var oldTime (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒數 //不是上面格式的時間需要轉換//starttime 2012-12-25 20:17:24;starttime starttime.replace(new RegExp("-","gm"),"/");…

Spring Cloud Sleuth 中id的使用

Spring Cloud Sleuth采用的是Google的開源項目Dapper的專業術語。 Span&#xff1a;基本工作單元&#xff0c;發送一個遠程調度任務 就會產生一個Span&#xff0c;Span是一個64位ID唯一標識的&#xff0c;Trace是用另一個64位ID唯一標識的&#xff0c;Span還有其他數據信息&…

軟件項目管理(五)

在get到成本計劃后&#xff0c;我們便要著手開始對項目的進度進行計劃&#xff0c;即這次的核心計劃之一進度計劃。 進度計劃的重要性&#xff1a;按時完成項目是項目經理最大的挑戰之一&#xff0c;時間是項目規劃中靈活性最小的因素&#xff0c;進度問題是項目沖突的主要原因…

BZOJ2301: [HAOI2011]Problem b(莫比烏斯反演)

Description 對于給出的n個詢問&#xff0c;每次求有多少個數對(x,y)&#xff0c;滿足a≤x≤b&#xff0c;c≤y≤d&#xff0c;且gcd(x,y) k&#xff0c;gcd(x,y)函數為x和y的最大公約數。Input 第一行一個整數n&#xff0c;接下來n行每行五個整數&#xff0c;分別表示a、b、c…

Js正則表達式數字或者帶小數點的數字

function chk() {var patrn /^\d(\.\d)?$/;var result true;$("input[typetext]").each(function () {if (!patrn.exec(this.value)) {alert("請輸入正確的數字&#xff01;");result false;}})return result;}轉載于:https://www.cnblogs.com/smzd/p/…

FastJson/spring boot: json輸出

1.引入FastJson依賴包 <!-- FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency>pom.xml參考 <project xmlns"http://maven.apa…

safari 調試iPhone web頁面

safari設置-打開Safari偏好者設置&#xff0c;選中“高級菜單”&#xff0c;在頁面最下方看到“在菜單中顯示開發菜單”的復選框&#xff0c;在復選框內打鉤&#xff0c;這樣設置完畢就能在Safari菜單中看到開發菜單了iPhone 設置-打開iPhone手機設置app 選擇Safari&#xff0c…

new函數

使用new函數是另一種創建變量的方式。創建一個未命名的T類型變量&#xff0c;初始化為T類型的零值&#xff0c;并返回其地址。例如&#xff1a; p : new(int)使用new函數創建變量和取其地址的普通局部變量沒有不同&#xff0c;只是不需要引入聲明時的一個名字&#xff0c;有語法…

軟件項目管理

目 錄 前言 2 如何做業務調研&#xff1f; 2.1 調研工作如何組織&#xff1f; 2.2 調研準備階段容易犯哪些錯誤&#xff1f; 2.3 調研準備階段容易犯哪些錯誤&#xff1f;) 2.4 調研準備階段容易犯哪些錯誤&#xff1f; 2.5 現場調研階段容易犯哪些錯誤&#xff1f; 2.…

Python 列表元組字典集合

列表&#xff08;list&#xff09; 有序性&#xff0c;可存儲任意類型的值通過偏移存取&#xff0c;支持索引來讀取元素&#xff0c;第一個索引為0 &#xff0c;倒數第一個索引為-1可變性 &#xff0c;支持切片、合并、刪除等操作可通過索引來向指定位置插入元素可通過pop()方法…

ios兼容問題

滑動卡頓&#xff1a; -webkit-overflow-scrolling:touch; 轉載于:https://www.cnblogs.com/smzd/p/7891722.html

postgresql 高可用 etcd + patroni 之二 patroni

os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni etcd 是在一個postgrsql 開源大會上 亞信的一個哥們講解的高可用方案。 依然是基于 postgreql stream replication。 ip規劃 192.168.56.101 node1 master 192.168.56.102 node2 slave 192.168.56.103 …

vue對象偵測

http://blog.csdn.net/yihanzhi/article/details/74200618 數組&#xff1a;this.$set(this.arr,index,value) 轉載于:https://www.cnblogs.com/smzd/p/8390626.html