最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL無法輸入中文字符問題的解決辦法

 更新時間:2023年05月23日 10:04:49   作者:烽起黎明  
MySQL無法輸入中文的問題大多是由于字符集不匹配所導致的,下面這篇文章主要給大家介紹了關于MySQL無法輸入中文字符問題的解決辦法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前幾日在使用MySQL數(shù)據(jù)庫的時候,出現(xiàn)了一處保存,故作此記錄?

問題描述

下面是我這樣exam表的結構

mysql> desc exam;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| chinese | decimal(3,1) | YES  |     | NULL    |       |
| math    | decimal(3,1) | YES  |     | NULL    |       |
| english | decimal(3,1) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

然后我使用insert into語句往這個表中插入了一條記錄

mysql> insert into exam values (1, '張三', 78, 89, 93);

但是卻報出了下面這樣的錯誤

ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1

仔細閱讀報錯提示后,說是【位于第1行“name”列的字符串值“\xE5\xBC\xA0\xE4\xB8\x89”不正確

問題排查

然后我思考了一下??可能是和當前數(shù)據(jù)庫的字符集設置有關系,因為我在插入英文的時候是沒有問題的

然后便使用下面這句查看了一下當前我的MySQL的各種編碼

show variables like '%character%';

然后一查看就發(fā)現(xiàn)我的【character_set_database】數(shù)據(jù)庫字符集為latin1,也就是拉丁文,對于這種字符集來說支持不了中文的

mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | latin1                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | latin1                                                     |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)

解決方案

然后來說一下該如何去解決這個問題,這里提供兩種解決方案

創(chuàng)建數(shù)據(jù)庫時設置字符集為utf8

create database 數(shù)據(jù)庫名 character set utf8;

例如下面這里,我新創(chuàng)建了一個名為test的數(shù)據(jù)庫,后面跟上character set utf8后,再去查看當前數(shù)據(jù)庫的字符集就是utf8了

mysql> create database test character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | latin1                                                     |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)

?? 那有人就會說:這樣不是很麻煩嗎,每次去創(chuàng)建數(shù)據(jù)庫都要手動指定一下字符集

是的,所以你可以考慮第二種方案,做到一勞永逸

修改數(shù)據(jù)庫配置文件【比較麻煩】

什么是配置文件?

  • 用戶配置文件就是在用戶登錄電腦時,或是用戶在使用軟件時,軟件系統(tǒng)為用戶所要加載所需環(huán)境的設置和文件的集合
  • 很多程序,內(nèi)部支持多種“模式”,可以調(diào)整當前程序,讓他應用那種模式。 因此就可以借助“開關”來切換模式!軟件的開關通常會用一個“圖形化界面”,但是對于 MySQL 等專用軟件則一般沒有對應的圖形化界面表示開關。只是通過一個【專門的文件】,來保存這些開關。這個文件就是 “配置文件”

① 而對于MySQL的配置文件就叫做my.ini,我們可以通過【Everything】這個搜索工具來進行查找

② 打開路徑后我們就看到了這個文件,當然你也可以直接在C盤的MySQL安裝位置中招(MySQL默認安在C盤)

?注意看我下面的兩個備份文件,在修改重要的配置文件前要先進行備份

③ 然后我們就可以通過記事本等方式去打開這個配置文件

④ 接下去找到這兩個地方,把前面的# + 空格去掉,并且在=后面加上utf8【注意這里一點空格也不要加!?。 ?/strong>

⑤ 在上面修改完配置文件,Ctrl + s后,找自己的電腦中找到【服務】,然后往下拉找到有關MySQL的,它便是你的MySQL服務器,重啟一下即可

?注意在重啟前要保證配置文件修改正確,否則MySQL會啟動失敗的

⑥ 接下去就可以再次啟動MySQL創(chuàng)建一個新的數(shù)據(jù)庫去看看我們的數(shù)據(jù)庫默認字符集是否改成utf8了

?注意之前創(chuàng)建的那個數(shù)據(jù)庫要刪掉,因為其默認的字符集就是[latin1]

⑦ 然后我們再試一下去插入一條帶有中文字符的記錄,就發(fā)現(xiàn)沒問題了( •? ω •? )y

mysql> insert into exam values (1, '李四', 79, 82, 92);
Query OK, 1 row affected (0.00 sec)

寫在最后

再看完了上面的這些內(nèi)容后,我們來聊聊有關MySQL報錯的問題

如果你使用過MySQL的話,就可以知道我們在初學CRUD的時候,會出現(xiàn)很多的報錯,于是很多同學面對英文的報錯就不知道該如何是好,就懶得學習了,這其實是不對的 如果英語基礎不太好的同學可以把報錯的提示放在翻譯軟件中去進行查看,若是能看懂的話最好,如果看不懂的話可以去百度搜搜看看,學會去發(fā)現(xiàn)問題、排查問題,最后解決問題

到此這篇關于MySQL無法輸入中文字符問題的解決辦法的文章就介紹到這了,更多相關MySQL無法輸入中文字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

枣阳市| 新丰县| 浑源县| 山西省| 祁阳县| 大理市| 麦盖提县| 南昌市| 科尔| 新河县| 紫阳县| 东方市| 威信县| 太湖县| 彩票| 新乡市| 马尔康县| 杭锦后旗| 郑州市| 洮南市| 本溪市| 融水| 云梦县| 贡嘎县| 田东县| 陈巴尔虎旗| 鄄城县| 泰州市| 赤城县| 东乡族自治县| 临夏县| 登封市| 横山县| 灌云县| 灯塔市| 新竹市| 定南县| 琼中| 讷河市| 屯昌县| 林周县|