【資料庫\Linux】一分鐘Linux下MySQL編碼問題

o0DarkNessYY0o發表於2016-08-21

標題圖片

       時隔半個月,我又回來啦!這段時間忙著把作品放伺服器上,調整了不少東西,發現這個玩意兒及其的致命,而且網上挺多方法的但是也沒有太具體,可能是本人檢索資料能力有限吧,花點兒時間寫下來讓方便大家也方便自己再次查閱。

       我們先看一下問題所在哈,如下圖所示,Linux作業系統,配置在之前一篇文章《【Linux\雲伺服器\Java】十分鐘帶你征服阿里雲Java Web環境部署》中講過,就不重複贅述了。不過圖上的結果也是我修改過一部分的了,先將就著看吧,其實都差不多的。使用以下命令檢視下圖MySQL內編碼。

show variables like 'character_set_%';
下面這個也行
show variables like '%char%';

問題描述

       一般情況下哈,我們開啟我們的MySQL後,不止character_set_databasecharacter_set_server兩個是latin1這麼簡單,基本你在圖上看到的value為utf8的基本都是latin1。。。。

       好,我們看看網上是什麼樣的方法,用這個方法確實能達到一定的效果,就是剛上圖所示的還剩兩個沒改完的方法:

Set Names 'utf8';

       或者是與其等價的三個命令:

set character_set_client=utf8;
set character_set_results=utf8;
set character_set_connection=utf8;

       上訴命令完成後,我就得到了之前那張圖的結果,然後繼續測試我的WebApp還是編碼有問題,返回來看到server和databases還是沒有改回來,我就仿照上述的三個命令,試了試:

set character_set_server=utf8;
set character_set_databases=utf8;

       再次呼叫一次命令檢視它們,非常之驚喜!成功了!但是看過我幾篇博文的童鞋肯定覺得沒這麼簡單,這麼簡單我就不會寫出來了[苦笑]

       一般我們對MySQL進行設定之後都會重啟一次的,重啟之後,很高興,我們真的沒這麼幸運!

       還是除了server和databases沒改過來。。。

       於是我在網上又發現了個修改MySQL配置檔案my.cnf的方法:

  1. 找到my.cnf檔案
  2. 在[client]欄位末尾加入default-character-set=utf8;
  3. 在[mysqld]欄位末尾加入character-set-server=utf8;
  4. 在[mysql]欄位末尾加入default-character-set=utf8和init-connect=’set names utf8’

       大致就這麼一個不驟,看上去非常的高逼格,但事實也應該是挺不錯的,可能會有點兒問題,因為我在N多次試驗的過程中,重啟MySQL有時候會導致什麼PID錯誤無法啟動MySQL,這個很頭疼,重啟一遍伺服器又沒事了,挺神奇的。

       然而更驚奇的是,我伺服器上的my.cnf檔案內容很驚奇,沒有上述說的那些加方括號的標籤內容,截圖看一下:

my.cnf原始檔案內容

       真的!我真的只有這些!!!

       不知道什麼原因,內容少得可憐,我也只能硬著頭皮加了點兒東西上去:

my.cnf內容

       其實也就是加相應的一些上述文章的配置,加完了以後:wq儲存一下,返回來看居然成功了!

成功圖

       總結一下,其實網上這些文章挺管用的,只是有些地方寫的還不夠仔細,我就把我的經歷經過都寫出來,畢竟是處於學習階段的,不會的操作、不會的細節都是很多的,很粗糙,因此也會走很多新人的彎路,再此寫出來讓更多的新手能夠看到這些經歷,能碰到和我一樣的最好了,我的文章就能幫到你大忙,希望早點兒能完工,繼續學習新的技術!

相關文章