自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL字符集,永恒的痛

數(shù)據(jù)庫 MySQL
最近遷移mysql和升級mysql版本,遇到了很多亂碼(主要是表情問題)問題,所以記錄下。

[[357939]]

本文轉載自微信公眾號「虞大膽的嘰嘰喳喳」,作者虞大膽。轉載本文請聯(lián)系虞大膽的嘰嘰喳喳公眾號。   

最近遷移mysql和升級mysql版本,遇到了很多亂碼(主要是表情問題)問題,所以記錄下。

mysql字符集分別支持四種級別的字符集和對應的比較規(guī)則,比如服務器級別的是character_set_server,數(shù)據(jù)庫級別的是character_set_database,表級別和列級別也可以設置字符集,比如:

  1. create database test  CHARSET set utf8mb4 COLLATE utf8_general_ci 

另外字符集比較也要遵循規(guī)則,比較常用的比較規(guī)則是utf8_general_ci。

一般服務器啟動的時候配置:

  1. [mysqld] 
  2. character_set_server = utf8mb4 

在安裝和創(chuàng)建庫表的時候,盡量使用utf8mb4字符集。

對于客戶端(比如程序驅(qū)動、mysql工具集)有三個和字符集有關的系統(tǒng)變量,分別是character_set_client,character_set_connection,character_set_results,用于客戶端編碼解碼,并和數(shù)據(jù)庫交互。

這三個參數(shù)其實通過default-character-set或set names一次性指定。

具體遇到的問題分別是:

1:mysql導入導出的指定default-character-set為utf8mb4,或者會出現(xiàn)亂碼。

2:服務器級別的字符集配置為utf8mb4,庫、表、列即使不指定,也會繼承服務器級別的配置。

3;mysql工具集,盡量顯示指定—default-character-set字符集,比如:

  1. [client] 
  2. default-character-set=utf8mb4 
  3. [mysql] 
  4. default-character-set=utf8mb4 

4:如果有proxy,一定要在proxy上指定字符集

5:如果不知道有沒有問題,通過phpmyadmin查看和修改,尤其查看其具體執(zhí)行的mysql語句。

6:編譯的時候指定字符集,比如:

 

  1. cmake -DDEFAULT_CHARSET=utf8mb4 -DEXTRA_CHARSETS=all  -DDEFAULT_COLLATION=utf8mb4_general_ci 

參考:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

 

責任編輯:武曉燕 來源: 虞大膽的嘰嘰喳喳
相關推薦

2021-03-23 18:21:30

MySQL數(shù)據(jù)庫字符集

2010-06-07 16:09:58

MySQL字符集

2009-02-24 10:51:30

2010-06-13 16:17:26

MySQL改變字符集

2011-05-16 13:15:55

MySQL存儲字符集

2010-10-09 10:57:22

MySQL默認字符集

2010-06-02 17:59:19

MySQL字符集

2010-11-01 15:44:45

DB2字符集

2010-10-09 11:12:32

mysql默認字符集

2010-05-17 10:01:09

MySql字符集

2010-10-14 11:52:38

MySQL字符集

2010-04-30 10:16:22

Oracle字符集

2011-04-11 10:59:33

Oracle字符集

2010-10-09 11:31:25

MySQL字符集

2009-07-01 00:23:40

MySQL字符集亂碼

2010-11-23 17:04:54

MySQL字符集

2011-04-11 11:05:12

Oracle字符集

2010-10-09 10:35:46

MySQL字符集

2010-11-24 10:52:57

Mysql字符集

2010-05-17 09:35:10

MySQL 字符集
點贊
收藏

51CTO技術棧公眾號