mysql資料庫格式
MySQL的默認編碼是Latin1,不支持中文,那麼如何修改MySQL的默認編碼呢,下面以UTF-8為例來說明
需要注意的是,要修改的地方非常多,相應的修改方法也很多。下面是一種最簡單最徹底的方法:
一、Windows
1、中止MySQL服務
2、在MySQL的安裝目錄下找到my.ini,如果沒有就把my-medium.ini復制為一個my.ini即可
3、打開my.ini以後,在[client]和[mysqld]下面均加上default-character-set=utf8,保存並關閉
4、啟動MySQL服務
二、Linux
1、中止MySQL服務(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果沒有就把MySQL的安裝目錄下的support-files目錄下的my-medium.cnf復制到/etc/下並改名為my.cnf即可
3、打開my.cnf以後,在[client]和[mysqld]下面均加上default-character-set=utf8,保存並關閉
4、啟動MySQL服務(bin/mysqld_safe &)
非常簡單,這樣的修改一勞永逸,今後MySQL一切相關的默認編碼均為UTF-8了,創建新表格的時候無需再次設置
需要注意的是,當前資料庫中已經存在的數據仍保留現有的編碼方式,因此需要自行轉碼,方法在網上有很多,不再贅述
B. 怎麼查看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 基礎字元集。
C. MySQL的數據文件有幾種擴展名分別是什麼
frm是表結構,MYD是數據,MYI是索引,如果用InnoDB只有frm數據和索引存在InnoDB的數據文件里。
默認MySQL 的資料庫是存放在...MySQLMySQL Server 5.5data文件夾下。一個資料庫是一個目錄,目錄下一個表對應三個文件,文件名是表名,擴展名分別是.frm、.MYD、.MYI((數據文件:. myd )、( 索引文件:. MYI )、(表定義文件:. frm))。
(3)mysql資料庫格式擴展閱讀:
普通索引(由關鍵字 KEY 或 INDEX 定義的索引)的任務是加快對數據的訪問速度。因此,應該只為那些最經常出現查詢條件(WHERE column =)或排序條件(ORDER BY column)中的數據列創建索引。只要有可能,就應該選擇一個數據最整齊、最緊湊的數據列(如一個整數類型的數據列)來創建索引。
普通索引允許被索引的數據列包含重復的值。比如說,因為人有可能同名,所以同一個姓名在同一個「員工個人資料」數據表裡可能出現兩次或更多次。
D. My Sql 的資料庫文件是什麼格式的 存放在哪裡
看你用什麼引擎?
一般默認存放在
show variables like '%datadir%';
這里.
但innodb的數據文件部分存放在
show variables like '%innodb_data%';
這里.
如果存儲引擎是myisam的,其有.frm、.MYI、.MYD三廳緩種核伏姿格式的文件,其中表定義在.frm這里;數據文件保存在.MYD;索引保存在.MYI里。
如果存儲引擎是innodb的,其數據文件保存在類似ibdata1這樣的文改絕件,表定義在.frm這里.
E. MySQL的資料庫文件有幾種擴展名及作用分別是什麼
在MySQL中每一個資料庫都會在定義好(或者默認)的數據目錄下存在一個以資料庫名字命名的文件夾,用來存放該資料庫中各種表數據文件。
1、「.frm」文件 與表相關的元數據(meta)信息都存放在「.frm」文件中,包括表結構的定義信息等。不論是什麼存儲引擎,每一個表都會有一個以表名命名的「.frm」文件。所有的「.frm」文件都存放在所屬資料庫的文件夾下面。
2、「.MYD」文件「 .MYD」文件是MyISAM存儲引擎專用,存放MyISAM表的數據。每一個MyISAM表都會有一個「.MYD」文件與之對應,同樣存放於所屬資料庫的文件夾下,和「.frm」文件在一起。
3、「.MYI」文件 「.MYI」文件也是專屬於MyISAM存儲引擎的,主要存放MyISAM表的索引相關信息。對於MyISAM存儲來說,可以被cache的內容主要就是來源於「.MYI」文件中。每一個MyISAM表對應一個「.MYI」文件,存放於位置和「.frm」以及「.MYD」一樣。
管理工具:
可以使用命令行工具管理 MySQL 資料庫(命令 mysql 和 mysqladmin),也可以從 MySQL 的網站下載圖形管理工具 MySQL Administrator, MySQL Query Browser 和 MySQL Workbench。
phpMyAdmin是由 php 寫成的 MySQ L資料庫系統管理程程序,讓管理者可用 Web 界面管理 MySQL 資料庫。
phpMyBackupPro也是由 PHP 寫成的,可以透過 Web 界面創建和管理資料庫。它可以創建偽 cronjobs,可以用來自動在某個時間或周期備份 MySQL 資料庫。另外,還有其他的 GUI 管理工具,例如 mysql-front 以及 ems mysql manager,navicat等等。
以上內容參考:網路-mySQL