修改mysql資料庫的編碼
『壹』 如何更改MySQL資料庫編碼為UTF-8或者GB2312
mysql 創建 資料庫時指定編碼很重要,很多開發者都使用了默認編碼,亂碼問題可是防不勝防。制定資料庫的編碼可以很大程度上避免倒入導出帶來的亂碼問題。
網頁數據一般採用UTF8編碼,而資料庫默認為latin 。我們可以通過修改資料庫默認編碼方式為UTF8來減少資料庫創建時的設置,也能最大限度的避免因粗心造成的亂碼問題。
我們遵循的標準是,資料庫,表,欄位和頁面或文本的編碼要統一起來
我們可以通過命令查看資料庫當前編碼:
mysql> SHOW VARIABLES LIKE 'character%';
發現很多對應的都是latin1,我們的目標就是在下次使用此命令時latin1能被UTF8取代。
第一階段:
mysql設置編碼命令
[sql]view plain
SETcharacter_set_client=utf8;
SETcharacter_set_connection=utf8;
SETcharacter_set_database=utf8;
SETcharacter_set_results=utf8;
SETcharacter_set_server=utf8;
- 然後mysql> SHOW VARIABLES LIKE 'character%';你可以看到全變為utf8 。
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 | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:Program FilesMySQLMySQL Server 5.0sharecharsets |
+--------------------------+---------------------------------------------------------+
8 rows in set
『貳』 怎麼修改mysql資料庫字元集編碼為utf-8
你要是用一個可視化操作的界面就簡單了,就比如navicat for mysql右鍵資料庫-->資料庫屬性--->字元集--->utf-8 unicode /排序規則--->utf8-gernal-ci就行了
『叄』 mysql資料庫怎麼改它的字元集編碼
1. ASCII
用途:用來映射簡單的單位元組字元,比如大小寫英文字母、阿拉伯數字、常用的標點符、運算符、控制字元等。
編碼范圍:U+0000 - U+007F
注意:對於用這類字元的場景夠用了,但是卻無法表達比如漢字,日文等編碼。
2. UNICODE
用途:用來映射包含 ASCII 以內的其他的所有字元。
編碼范圍:U+0000 - U+10FFFF
注意:ASCII 是 UNICODE 的子集,ASCII 編碼的字元可以無損轉換為 UNICODE 編碼的字元。
MySQL 常用字元集
1. Latin1
Latin1 是 cp1252 或者 ISO-8859-1 的別名。ISO-8859-1 編碼是單位元組編碼,向下兼容 ASCII。
編碼范圍:U+0000 - U+00FF
ISO-8859-1 收錄的字元除 ASCII 收錄的字元外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字元號。
單位元組內的空間都被 ISO-8859-1 編碼佔用,所以能夠用 ISO-8859-1 編碼存儲、傳輸其他任何編碼的位元組流。
比如把一個 Utf8mb4 的編碼或者 GBK 的編碼存入 Latin1,不會有任何問題。因為 Latin1 保留了原始的位元組流,這也就是 MySQL 長期以來把 Latin1 做默認字元集的原因。
但是由於 Latin1 對任何字元都存放位元組流,造成了字元個數的浪費。
比如:
CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;
該欄位中存儲字元個數 UTF8 是 Latin1 的三倍!!!
2. GB18030
GB18030 是中國官方標准字元集,向前兼容 GBK、GB2312,是這兩個的超集。用 1、2、4 個位元組分別表示一個符號。比如對一般中文字元,默認是用兩個位元組編碼存儲。Windows 系統,默認用的就是 GB18030。
若只是存儲中文字元,那 GB18030 最佳。
原因有兩點:
1)佔用空間小,比如比 UTF8 小。
2)存儲的漢字根據拼音來排序,檢索快。
3. UTF8
UTF8 是 Unicode 的編碼實現,可以存儲 UNICODE 編碼對應的任何字元, 這也是使用最多的一種編碼。最大的特點就是變長的編碼方式,用 1 到 4 個位元組表示一個符號,可以根據不同的符號編碼位元組長度。
字母或數字用 1 位元組,漢字用 3 位元組,emoji 表情符號用 4 位元組。UTF8 字元集目前是使用最廣泛的。
注意!MySQL 里常說的 UTF8 是 UTF8MB3 的別名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 位元組 UTF8 字元集!
UTF8MB3 表示最大支持 3 個位元組存儲字元,UTF8MB4 表示最大 4 個位元組存儲字元。根據實際需要和未來展望,MySQL 8.0 已經默認用 UTF8MB4 基礎字元集。
『肆』 如何修改mysql資料庫中某一個表的編碼
利用sql語句進行修改,舉例說明:
1、ALTER TABLE `test` DEFAULT CHARACTER SET utf8;該命令用於將表test的編碼方式改為utf8;
2、ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 該命令用於將表test中name欄位的編碼方式改為utf8
『伍』 mysql資料庫如何設置編碼格式
修改資料庫成utf8的.mysql> alter database name character set utf8;
修改表默認用utf8.mysql> alter table type character set utf8;
修改欄位用utf8mysql> alter table type modify type_name varchar(50) CHARACTER SET utf8;
『陸』 怎麼修改mysql資料庫中的默認編碼格式
1.去mysql下找到文件my.ini配置文件用記事本打開,找到 default-character-set=latin1,character-set-server=latin1;將latin1改為utf-8或者gbk,修改完之後專保存。
2.我的屬電腦右擊 「管理」進入之後選擇「服務和應用程序」下的「服務」,找到「mysql」之後右擊選擇「重新啟動」。
『柒』 mysql 更改資料庫的編碼
mysql支持中文欄位的。我的mysql就是gb2312的編碼方式,上面的建表語句能建表。。最簡單的版方式就是修權改配置文件,先關閉mysql的服務。打開mysql的安裝目錄。裡面有個my.ini的。打開它。。將下面的那個charater-set設置為gb2312default-character-set=gb2312還有default-character-set=gb2312修改好這兩個設置後。啟動服務。搞掂、、、我也是怎麼設來的!!
『捌』 怎樣更改MySQL資料庫編碼為UTF
如果沒有配置好cmd裡面的mysql 環境變數,那就在系統高級設置那兒進行MySQL的環境變數設置。
win+R,調出「運行」,輸入cmd,回車
登錄資料庫,
查看資料庫
查看資料庫字元編碼
通過MySQL命令行修改:(編碼可選)
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
當然還有:
修改資料庫的字元集mysql>use mydb
mysql>alter database mydb character set utf8;
創建資料庫指定資料庫的字元集
mysql>create database mydb character set utf8;
『玖』 如何通過命令修改mysql資料庫默認編碼為gb2312
轉:
以更改為UTF-8為例,GB2312雷同。
1、關閉mysql服務(以下為命令行中執行)
view plain
service mysql stop
2、修改 /etc/mysql/my.cnf (默認的安裝路徑)
view plain
vim /etc/mysql/my.cnf
打開my.cnf後,在文件內的[mysqld]下增加如下兩行設置:
character_set_server=utf8
init_connect='SET NAMES utf8'
然後保存退出。
3、重新啟動mysql服務
view plain
service mysql start
至此,完成修改默認編碼,
登陸mysql後重新使用show variable like '%character%'獲得的輸出效果驗證
『拾』 MySQL資料庫編碼修改
對於有數據的表,不能修改編碼,否則裡面的數據會成為亂馬,一般的方法是把所有數據保存到文本文件裡面,清空數據後修改編碼,然後重新裝入數據。