首頁  >  文章  >  資料庫  >  mysql5.7.18字元集配置

mysql5.7.18字元集配置

巴扎黑
巴扎黑原創
2017-06-23 15:04:061105瀏覽

 

故事背景:

  很久很久以前(2017.6.5,文章有其時效性,特別是使用的工具更新換代頻發,請記住這個時間,若已經沒有價值,一切以工具官方文件為準),下了個mysql版本玩玩,剛好最新是mysql5.7.18,本機是win10、64位元系統。大抵步驟分為:

  1、下載:以官網()為準,download回應系統版本;

  2、初始化:命令列(cmd)進入解壓縮目錄bin資料夾(下載下來後應該要解壓縮吧? 太久有點遺忘。一種叫做不安全初始化,及輸入: mysqld --initialize ,初始化使root這個使用者沒有密碼(沒有密碼所以不安全);一種是所謂的安全初始化,輸入: mysqld --initialize-insecure ,產生密碼的root用戶,密碼可以在生成後出現的日誌檔案裡查看,就在初始化後產生的data檔案裡

 

  3、啟動服務: 輸入: net start mysql (關閉服務: 輸入: net stop mysql),如果提示net不是內部命令,那麼可能是net沒安裝,也可能是沒配置環境變量,檢查一下就行

  4、基本上應該是這樣,其他的可以查詢mysql指令大全去搞。

接下來說說配置字元集的問題。

起因:

  就是昨天,首先對著mysql命令列查看資料太過抽象,所以先下載了個Navicat for mysql(視覺化介面),看起來就好多了。如圖:

  然後在表中插入資料時會報錯“Incorrect string value”,百度了一下說是要將字元集改為utf8mb4,這是因為其他編碼存不了一些特殊字符的關係,詳情可以百度。

經過:

  修改字元集首先進入mysql: mysql -uroot  (使用者登錄,因為初始化選了沒密碼的那種),show variables like 'char%'  (查看字元編碼),如圖:

  可以在命令列輸入例如: set character_set_server=utf8mb4  來改變字元集,但僅限當次有效,重啟服務時會恢復預設值。接下來試試其他方法,網路上眾說紛紜,含糊不清,真假難以分辨 。於是上官網看了一下(官網也很水,沒有例子可以參照,就像告訴瞎子白色是白色一樣,而我就是那個瞎子),看了文檔裡有個查看變數的指令:mysqld --verbose -- help,查看的變數都可以配置在選項檔裡,每次啟動服務就會按選項檔裡的自動去配置,然後這裡出現一句:

      Default options are read from the following files in the given order

  我想應該是選項檔案可能存在的地方,也就是說我們新建出的選項檔案要以它顯示出來的名字命名,放到它顯示出的該放的地方。如圖:

   新建一個my.ini文件,放在D:\mysql下,剛好就是它顯示出來位置的其中一個,如上圖。 my.ini內容如下:

  基本上就是以這樣的形式來配,這裡只拿了個罪魁禍首character_set_server,當然關聯的字元集配置要統一,否則可能會亂碼,可以去百度看看每個字元集代表什麼意思。

  然後關閉mysql服務,開始設定(輸入mysqld --install):

  1、如果非管理員開啟cmd輸入mysqld --install會報如下訊息,說是指令被拒絕:

  2、改用管理員打開,說是服務已存在(那麼先把它刪了就好了):

 

#  3、查詢mysql服務:sc query mysql(也可以在控制台-管理工具-服務中找到,或直接搜尋服務)

 

  4 、刪除了它:(也可以在控制面板-管理工具-服務中卸載,或直接搜尋服務)

#  5、當然重裝前要停止mysql,即使先行刪了它,否則會出現:

  6、我們停了它,這次是在控制面板停掉的,因為之前把它卸了,停掉後就消失不見(命令列: net stop mysql),重新執行,成功的同時啟動mysql服務:

  7、重啟成功,登上去上看看有沒有改變成功:

  8、然後到此就可以了,之後又試了幾次,只要改了my.ini後,關閉在重新啟動mysql服務,它每次都會按my.ini來改,也就是說以後如果不滿意不用從頭走一遍,只要改my.ini後重啟服務就好了。如圖:

  我再改:

  配置就到這了,bye!

 

以上是mysql5.7.18字元集配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn