MySQL插入不了中文數(shù)據(jù)問題的原因及解決
前言
我們使用MySQL可能會遇到加入中文報(bào)錯(cuò)的情況,如下。
報(bào)錯(cuò):非法的字符值 放入 ‘name’ 為什么不能存入中文呢?
原因:
對于當(dāng)前數(shù)據(jù)庫 來說,內(nèi)部存儲中文是需要指定對應(yīng)的中文編碼方式!
而數(shù)據(jù)庫默認(rèn)的字符集,是“拉丁文”,不能存中文。
我們在控制臺輸入,下面這行命令,查看數(shù)據(jù)庫字符集。
show variables like '%char%';
我們看 character_set_database 這一行對應(yīng) Value的是 latinl,而 latinl 是拉丁文,是不支持中文的。
現(xiàn)在我們知道數(shù)據(jù)庫為什么不能存儲中文了,那應(yīng)該怎么做才能讓數(shù)據(jù)庫插入中文呢?我們接著往下看
具體解決方法:
我主要介紹兩種方法,一種簡單的,一個(gè)比較復(fù)雜,但其本質(zhì)上是在修改 數(shù)據(jù)庫 字符編碼
創(chuàng)建數(shù)據(jù)庫時(shí)設(shè)置字符集為utf8
我們在創(chuàng)建數(shù)據(jù)庫時(shí)設(shè)置支持中文字符集utf8,如下
create database 數(shù)據(jù)庫名 character set utf8;
設(shè)置完后,我們就能想改數(shù)據(jù)庫中插入中文啦。
我們再查看該數(shù)據(jù)庫時(shí),我們會發(fā)現(xiàn)我們設(shè)置數(shù)據(jù)庫字符集改變了,但是當(dāng)我們使用其他數(shù)據(jù)庫時(shí),其字符集還是 latinl。
這種方法,雖然簡單但是每次都需要手動設(shè)置,那有沒有一種方法能一勞永逸。
我們看方法二。
修改數(shù)據(jù)庫配置文件(比較麻煩)
我們可以修改MySQL的配置文件,把其字符集修改為utf8,這樣再創(chuàng)建數(shù)據(jù)庫就不用手動設(shè)置啦。
什么是配置文件:
很多程序,內(nèi)部支持多種“模式”,可以調(diào)整當(dāng)前程序,讓他應(yīng)用那種模式。
因此就可以借助“開關(guān)”來切換模式!軟件的開關(guān)通常會用一個(gè)“圖形化界面”,但是對于 MySQL 等????程序猿????專用軟件則一般沒有對應(yīng)的圖形化界面表示開關(guān)。只是通過一個(gè)專門的文件,來保存這些開關(guān)。這個(gè)文件就是 “配置文件”。
因此程序猿如果要調(diào)整這些開關(guān),就要手動修改這個(gè)文件。
1、找到MySQL的配置文件
每個(gè)人電腦上的配置文件路徑不一樣,我們可以‘服務(wù)’來找到其對于的路徑
然后在服務(wù)中,找到MySQL,在常規(guī)中找到可執(zhí)行文件路徑,復(fù)制下來。
大家可以像我一樣,把路徑復(fù)制下來放到畫圖中方便查看。如下圖,畫紅線的就是MySQL配置文件路徑,接著我們根據(jù)路徑去查找配置文件
在查找過程中 大家肯能找不到 ProgramData 文件,一般這個(gè)文件都是隱藏起來的,我們點(diǎn)擊顯示隱藏項(xiàng)目就會出現(xiàn)。
2、修改文件
找到 后綴為 .ini 文件后,我們可以記事本打開編輯。
注意:
大家在進(jìn)行編輯之前,一定要先備份?。?!
這樣的文件非常關(guān)鍵,一旦改錯(cuò)了,mysql 就啟動不了了??!
如何備份:我們直接選中文件,賦值粘貼即可。
首先在文件中找到[mysql],在下面添加下面 default-character-set=utf8
注意:=兩側(cè)不要有空格
然后找到[mysqld],把 下圖話紅框的地方改成 character-set-server=utf8 ,改好后退出保存
3、重啟MySQL服務(wù)器(重要)
MySQL是一個(gè)客戶端服務(wù)器程序,我們要重啟MySQL服務(wù)器。我們在服務(wù)中找到MySQL之后,右鍵點(diǎn)擊重啟。重啟后MySQL顯示‘正在運(yùn)行’,即重啟成功!
注意:重啟的是MySQL服務(wù)器,不是MySQL客戶端
如果啟動失敗,可能是配置文件出錯(cuò),大家可以回去檢測一下是不是有拼寫錯(cuò)誤或空格多打的情況
到這里就配置成功了,我們可以去嘗試建庫插入中文試試
剛才該的配置,影響的是新的庫。舊的庫,仍然是之前的編碼?。。?一定要記得刪庫,重新建庫
總結(jié)
到此這篇關(guān)于MySQL插入不了中文數(shù)據(jù)問題的原因及解決的文章就介紹到這了,更多相關(guān)MySQL插入不了中文數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!