本文透過圖文並茂的形式給大家介紹了mysql5.7.18字符集配置教程,非常不錯,具有參考借鑒價值,需要的朋友參考下吧,希望能幫助到大家。
故事背景:
很久很久以前(2017.6.5,文章有其時效性,特別是使用的工具更新換代頻發,請記住這個時間,若已經沒有價值,一切以工具官方文件為準),下了個mysql版本玩玩,剛好最新是mysql5.7.18,本機是win10、64位元系統。大抵步驟分為:
1、下載:以官網(https://www.mysql.com)為準,download回應系統版本;
2、初始化:命令列(cmd )進入解壓縮目錄bin資料夾(下載下來後應該要解壓縮吧?太久有點遺忘。還有下載下來是沒有data這個資料夾以及ini等檔案的),這裡有兩種初始化方式。一種叫做不安全初始化,及輸入: 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、重啟成功,登上去上看看有沒有改動成功:
以上是MySql5.7.18字元集組態圖文實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!