文章詳情頁
MySQL插入不了中文數據問題的原因及解決
瀏覽:51日期:2023-05-08 10:17:48
目錄
- 前言
- 原因:
- 具體解決方法:
- 創建數據庫時設置字符集為utf8
- 修改數據庫配置文件(比較麻煩)
- 總結
前言
我們使用MySQL可能會遇到加入中文報錯的情況,如下。
報錯:非法的字符值 放入 ‘name’ 為什么不能存入中文呢?
原因:
對于當前數據庫 來說,內部存儲中文是需要指定對應的中文編碼方式!
而數據庫默認的字符集,是“拉丁文”,不能存中文。
我們在控制臺輸入,下面這行命令,查看數據庫字符集。
show variables like "%char%";
我們看 character_set_database 這一行對應 Value的是 latinl,而 latinl 是拉丁文,是不支持中文的。
現在我們知道數據庫為什么不能存儲中文了,那應該怎么做才能讓數據庫插入中文呢?我們接著往下看
具體解決方法:
我主要介紹兩種方法,一種簡單的,一個比較復雜,但其本質上是在修改 數據庫 字符編碼
創建數據庫時設置字符集為utf8
我們在創建數據庫時設置支持中文字符集utf8,如下
create database 數據庫名 character set utf8;
設置完后,我們就能想改數據庫中插入中文啦。
我們再查看該數據庫時,我們會發現我們設置數據庫字符集改變了,但是當我們使用其他數據庫時,其字符集還是 latinl。
這種方法,雖然簡單但是每次都需要手動設置,那有沒有一種方法能一勞永逸。
我們看方法二。
修改數據庫配置文件(比較麻煩)
我們可以修改MySQL的配置文件,把其字符集修改為utf8,這樣再創建數據庫就不用手動設置啦。
什么是配置文件:
很多程序,內部支持多種“模式”,可以調整當前程序,讓他應用那種模式。
因此就可以借助“開關”來切換模式!軟件的開關通常會用一個“圖形化界面”,但是對于 MySQL 等
標簽:
MySQL
排行榜