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