欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

問題描述

下面是我這樣exam表的結(jié)構(gòu)

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ù)庫的字符集設(shè)置有關(guān)系,因為我在插入英文的時候是沒有問題的

然后便使用下面這句查看了一下當前我的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ù)庫時設(shè)置字符集為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)境的設(shè)置和文件的集合
  • 很多程序,內(nèi)部支持多種“模式”,可以調(diào)整當前程序,讓他應(yīng)用那種模式。 因此就可以借助“開關(guān)”來切換模式!軟件的開關(guān)通常會用一個“圖形化界面”,但是對于 MySQL 等專用軟件則一般沒有對應(yīng)的圖形化界面表示開關(guān)。只是通過一個【專門的文件】,來保存這些開關(guān)。這個文件就是 “配置文件”

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

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

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

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

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

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

?注意在重啟前要保證配置文件修改正確,否則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)容后,我們來聊聊有關(guān)MySQL報錯的問題

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

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

相關(guān)文章

  • MyBatis 動態(tài)SQL全面詳解

    MyBatis 動態(tài)SQL全面詳解

    MyBatis 的強大特性之一便是它的動態(tài) SQL。如果你有使用 JDBC 或其他類似框架的經(jīng)驗,你就能體會到根據(jù)不同條件拼接 SQL 語句有多么痛苦。拼接的時候要確保不能忘了必要的空格,還要注意省掉列名列表最后的逗號。利用動態(tài) SQL 這一特性可以徹底擺脫這種痛苦
    2021-09-09
  • MySQL外鍵約束(FOREIGN KEY)案例講解

    MySQL外鍵約束(FOREIGN KEY)案例講解

    這篇文章主要介紹了MySQL外鍵約束(FOREIGN KEY)案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • MySQL優(yōu)化之對RAND()的優(yōu)化方法

    MySQL優(yōu)化之對RAND()的優(yōu)化方法

    這篇文章主要介紹了MySQL優(yōu)化之對RAND()的優(yōu)化方法,本文詳細分析了Mysql中對RAND()的幾種優(yōu)化方法,并最終得出一個結(jié)論,需要的朋友可以參考下
    2014-07-07
  • 一些mysql啟動參數(shù)的說明和優(yōu)化方法

    一些mysql啟動參數(shù)的說明和優(yōu)化方法

    要求MySQL能有的連接數(shù)量。當主要MySQL線程在一個很短時間內(nèi)得到非常多的連接請求,這就起作用,然后主線程花些時間(盡管很短)檢查連接并且啟動一個新線程。
    2011-04-04
  • MySQL日期格式以及日期函數(shù)舉例詳解

    MySQL日期格式以及日期函數(shù)舉例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL日期格式及日期函數(shù)的相關(guān)資料,日期在數(shù)據(jù)庫中是一個常見且重要的數(shù)據(jù)類型,在MySQL中我們可以使用各種函數(shù)和格式化選項來處理和顯示日期,需要的朋友可以參考下
    2023-11-11
  • 解析sql語句中l(wèi)eft_join、inner_join中的on與where的區(qū)別

    解析sql語句中l(wèi)eft_join、inner_join中的on與where的區(qū)別

    以下是對在sql語句中l(wèi)eft_join、inner_join中的on與where的區(qū)別進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • MySQL存儲引擎應(yīng)用場景MyISAM?vs?InnoDB優(yōu)勢選擇

    MySQL存儲引擎應(yīng)用場景MyISAM?vs?InnoDB優(yōu)勢選擇

    這篇文章主要為大家介紹了MySQL存儲引擎應(yīng)用場景MyISAM?vs?InnoDB優(yōu)勢選擇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • MySql?explain命令返回結(jié)果詳細介紹

    MySql?explain命令返回結(jié)果詳細介紹

    explain?是MySql提供的SQL語句查詢性能的工具,是我們優(yōu)化SQL的重要指標手段,要看懂explain返回的結(jié)果集就尤為重要,這篇文章主要介紹了MySql?explain命令返回結(jié)果解讀,需要的朋友可以參考下
    2023-09-09
  • MySql數(shù)據(jù)引擎簡介與選擇方法

    MySql數(shù)據(jù)引擎簡介與選擇方法

    在MySQL 5.1中,MySQL AB引入了新的插件式存儲引擎體系結(jié)構(gòu),允許將存儲引擎加載到正在運新的MySQL服務(wù)器中
    2012-11-11
  • MySQL中between...and的使用對索引的影響說明

    MySQL中between...and的使用對索引的影響說明

    這篇文章主要介紹了MySQL中between...and的使用對索引的影響說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論