mysql資料庫編碼設置
1、查看資料庫編碼格式
mysql>showvariableslike'character_set_database'
2、查看數據表的編碼格式
mysql>showcreatetable<表名>;
3、創建資料庫時指定資料庫的字元集
mysql>createdatabase<資料庫名>charactersetutf8;
4、創建數據表時指定數據表的編碼格式
createtabletb_books(
namevarchar(45)notnull,
pricedoublenotnull,
bookCountintnotnull,
authorvarchar(45)notnull)defaultcharset=utf8;
5、修改資料庫的編碼格式
mysql>alterdatabase<資料庫名>charactersetutf8;
6、修改數據表格編碼格式
mysql>altertable<表名>charactersetutf8;
7、修改欄位編碼格式
mysql>altertable<表名>change<欄位名><欄位名><類型>charactersetutf8;
mysql>(20)charactersetutf8notnull;
B. MYSQL 如何設置資料庫編碼
default-character-set=utf82單獨設來置某個資料庫:
alter database testdb character set utf8;
查看自mysql支持的編碼:
show character set;也可以使用如下方法查看編碼:
SHOW STATUS mysql -uroot use YOUR DATABASE status ---------------------------------- Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: 3306 Uptime: 53 sec ---------------------------------- 如果 client 為utf8 , 改為: set char set 'gbk'; 查看資料庫編碼:show create database your_db_name
C. 如何設置mysql資料庫為utf-8編碼
以更改為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%'獲得的輸出效果
D. 如何更改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
E. mysql資料庫怎麼設置編碼格式
1、 編輯MySql的配置文件
MySql的配置文件Windows下一般在系統目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf
--在 [mysqld] 標簽下加上以下內容:
default-character-set = utf8
character_set_server = utf8
注意:如果此標簽下已經存在「default-character-set=GBK」類似的內容,只需修改即可。
--在 [mysql] 標簽下加上一行
default-character-set = utf8
--在 [mysql.server]標簽下加上一行
default-character-set = utf8
--在 [mysqld_safe]標簽下加上一行
default-character-set = utf8
--在 [client]標簽下加上一行
default-character-set = utf8
2、 重新啟動MySql服務
Windows可在服務管理器中操作,也可使用命令行:
net stop mysql 回車
net start mysql 回車
服務名可能不一定為mysql,請按自己的設置
Linux下面可是用 service mysql restart
如果出現啟動失敗,請檢查配置文件有沒有設置錯誤
3、 查看設置結果
登錄MySql命令行客戶端:打開命令行
mysql –uroot –p 回車
輸入密碼
進入mysql後 執行 :show variables like "% character %";
顯示結果應該類似如下:
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
如果仍有編碼不是utf8的,請檢查配置文件,也可使用mysql命令設置:
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;
另外:
建立資料庫時可以使用以下命令:
create database app_relation character set utf8;
use app_relation;
source app_relation.sql;
修改資料庫編碼的命令為:
alter database app_relation character set utf8;
F. 怎樣更改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;
G. 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 基礎字元集。