国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數據庫編碼 問題 mysql 修改字符集為utf8mb4

這篇具有很好參考價值的文章主要介紹了數據庫編碼 問題 mysql 修改字符集為utf8mb4。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

數據庫編碼 問題
mysql 修改字符集為utf8mb4
問題 ;
當向數據庫插入表,或者在表中插入數據時,出現

ERROR 1366 (HY000): Incorrect string value: ‘\xBD\xF0\xD3\xB9’ for
column ‘name’ at row 1

原因 數據庫編碼方式 和 表編碼方式 以及 插入數據(字符串)的編碼方式不同

我們可以查看建表,建數據庫語句,查看他們的編碼

show create database database_name
show create table table_name

也可以使用 show full columns from emp 查看表的最詳盡信息

在windows下mysql建表是默認是采用latin字符集
錯誤解決方式

將數據庫和表的編碼換成 utf8mb4 插入表的語句在記事本里另存為 utf8 編碼

修改database默認的字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE =
utf8mb4_unicode_ci

雖然修改了database的字符集為utf8mb4,但是實際只是修改了database新創(chuàng)建的表,默認使用utf8mb4,原來已經存在的表,字符集并沒有跟著改變,需要手動為每張表設置字符集
修改table的字符集

只修改表默認的字符集
ALTER TABLE table_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改表默認的字符集和所有字符列的字符集
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

單獨修改column默認的字符集 ALTER TABLE table_name CHANGE column_name column_name
VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

注意內容
檢查字段的最大長度和索引列

字段長度
由于從utf8升級到了utf8mb4,一個字符所占用的空間也由3個字節(jié)增長到4個字節(jié),但是我們當初創(chuàng)建表時,
設置的字段類型以及最大的長度沒有改變。例如,你在utf8下設置某一字段的類型為TINYTEXT, 這中字段類型
最大可以容納255字節(jié),三個字節(jié)一個字符的情況下可以容納85個字符,四個字節(jié)一個字符的情況下只能容納63
個字符,如果原表中的這個字段的值有一個或多個超過了63個字符,那么轉換成utf8mb4字符編碼時將轉換失
敗,你必須先將TINYTEXT更改為TEXT等更高容量的類型之后才能繼續(xù)轉換字符編碼
索引
在InnoDB引擎中,最大的索引長度為767字節(jié),三個字節(jié)一個字符的情況下,索引列的字符長度最大可以達到
255,四個字節(jié)一個字符的情況下,索引的字符長度最大只能到191。如果你已經存在的表中的索引列的類型為
VARCHAR(255)那么轉換utf8mb4時同樣會轉換失敗。你需要先將VARCHAR(255)更改為VARCHAR(191)才能繼續(xù)
轉換字符編碼

修改配置文件

SET NAMES utf8 COLLATE utf8_unicode_ci becomes SET NAMES utf8mb4
COLLATE utf8mb4_unicode_ci

vim /etc/my.cnf

對本地的mysql客戶端的配置

[client] default-character-set = utf8mb4

對其他遠程連接的mysql客戶端的配置

[mysql] default-character-set = utf8mb4

本地mysql服務的配置

[mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
service mysqld restart

檢查修改

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
10 rows in set (0.00 sec)

修復&優(yōu)化所有數據表

mysqlcheck -u root -p --auto-repair --optimize --all-databases文章來源地址http://www.zghlxwxcb.cn/news/detail-403804.html

到了這里,關于數據庫編碼 問題 mysql 修改字符集為utf8mb4的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 達夢數據庫支持GB18030-2022中文編碼字符集證明方法

    達夢數據庫支持GB18030-2022中文編碼字符集證明方法

    既然是證明就要做到有圖有真相。 證明途徑1:系統(tǒng)概覽法 查看達夢數據庫“管理工具”-“對象導航”-“管理服務器”-“系統(tǒng)概覽”-“字符集編碼”-”GB18030”. 看見”GB18030”字樣就是證據之一。如果你沒有看見這個字樣,而是UTF8等其他字樣,請重新安裝產品吧,安裝向導

    2023年04月18日
    瀏覽(23)
  • Oracle數據庫字符集概述及修改方式

    Oracle數據庫字符集概述及修改方式

    Oracle語言環(huán)境的描述包括三部分:language、territory、characterset(語言、地域、字符集) language:主要指定服務器消息的語言,提示信息顯示中文還是英文 territory:主要指定服務器的數字和日期的格式 characterset:是指字符集,一般國內數據庫實際使用的字符集主要是ZHS16GBK、AL32

    2024年02月11日
    瀏覽(19)
  • 如何配置達夢數據庫使其支持GB18030-2022中文編碼字符集

    如何配置達夢數據庫使其支持GB18030-2022中文編碼字符集

    達夢版本要求,要求使用2023年4月及之后的達夢月度版版本,補丁版、臨時版等不可以。 正確安裝windows操作系統(tǒng),windows10以下的版本未做過測試,可能系統(tǒng)不支持導致各種顯示錯誤,建議用windows10及以上版本,本人親測過window10和windows11支持. 安裝一個字體覆蓋全的字庫,w

    2024年02月09日
    瀏覽(35)
  • JAVA編碼規(guī)范:安全規(guī)約、mysql數據庫_java后端的sql編碼規(guī)范

    JAVA編碼規(guī)范:安全規(guī)約、mysql數據庫_java后端的sql編碼規(guī)范

    7、【強制】如果存儲的字符串長度幾乎相等,使用 char定長字符串類型 8、【強制】varchar是可變長字符串,不預先分配存儲空間,長度不要超過 5000,如果存儲長度大于此值,定義字段類型為 text,獨立出來一張 表,用主鍵來對應,避免影響其它字段索引效率。 9、【強制】表

    2024年04月10日
    瀏覽(43)
  • MySQL數據庫——MySQL UPDATE:修改數據(更新數據)

    在?MySQL 中,可以使用 UPDATE 語句來修改、更新一個或多個表的數據。 使用 UPDATE 語句修改單個表,語法格式為: 語法說明如下: 表名 : 用于指定要更新的表名稱。 SET ?子句: 用于指定表中要修改的列名及其列值。其中,每個指定的列值可以是表達式,也可以是該列對應的

    2024年02月12日
    瀏覽(22)
  • 數據庫之MySQL字符集與數據庫操作

    數據庫之MySQL字符集與數據庫操作

    目錄 字符集 CHRARCTER?SET?與COLLATION的關聯 CHRARCTER?SET 定義 基礎操作 ????????查看當前MySQL?Server支持的?CHARACTER?SET ????????查看特定字符集信息(主要包含默認的COLLATION?與?MAXLEN) COLLATION 定義 COLLATION后綴 基礎操作 ????????查看MySQL?Server支持的COLLATION MySQL?Ser

    2024年02月13日
    瀏覽(23)
  • 修改MySQL 數據庫名稱

    MySQL不支持直接修改數據庫名稱語法。 那么要修改數據庫名稱該如何操作呢?例如,我們將數據庫test 修改為test2。 第一步 創(chuàng)建新名稱對應的數據庫 第二步 獲取所有源庫的表,即test數據庫下所有表。 第三步 通過rename語法修改表schema信息 修改完成所有表后,刪除原有數據庫

    2024年02月12日
    瀏覽(22)
  • mysql數據庫如何修改端口

    1. 登錄mysql mysql -u root -p 2. 查看端口號 show global variables like ‘port’; ±--------------±------+ | Variable_name | Value | ±--------------±------+ | port | 3306 | ±--------------±------+ 1 row in set (0.00 sec) 3. 修改端口, 編輯/etc/my.cnf文件,早期版本有可能是my.conf文件名,增加端口參數,并且設定端口,

    2024年02月08日
    瀏覽(20)
  • Windows修改MySQL數據庫密碼(修改或忘記密碼)
?

    Windows修改MySQL數據庫密碼(修改或忘記密碼) ?

    今天練習遠程訪問數據庫時,為了方便訪問,就想著把數據庫密碼改為統(tǒng)一的,以后我們也會經常遇到MySQL需要修改密碼的情況,比如密碼太簡單、忘記密碼等等。在這里我就借鑒其他人的方法總結幾種修改MySQL密碼的方法。 我就以實際操作修改root密碼為例,操作系統(tǒng)為win

    2024年02月09日
    瀏覽(102)
  • Windows修改MySQL數據庫密碼(修改或忘記密碼)

    Windows修改MySQL數據庫密碼(修改或忘記密碼)

    今天練習遠程訪問數據庫時,為了方便訪問,就想著把數據庫密碼改為統(tǒng)一的,以后我們也會經常遇到MySQL需要修改密碼的情況,比如密碼太簡單、忘記密碼等等。在這里我就借鑒其他人的方法總結幾種修改MySQL密碼的方法。 我就以實際操作修改root密碼為例,操作系統(tǒng)為win

    2024年02月08日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包