[MySQL]數據目錄的機關架構
來源:懂視網
責編:小采
時間:2020-11-09 14:01:41
[MySQL]數據目錄的機關架構
[MySQL]數據目錄的機關架構:[MySQL] 數據目錄的組織架構 歸根到底,MySQL是運行在操作系統上的一個軟件,它需要借助于文件系統存儲數據,本文主要介紹MySQL數據目錄的組織架構。 數據目錄的位置 可以通過以下幾個方法查看MySQL數據目錄的位置:1)對于一個正在運行的MySQL服務器來
導讀[MySQL]數據目錄的機關架構:[MySQL] 數據目錄的組織架構 歸根到底,MySQL是運行在操作系統上的一個軟件,它需要借助于文件系統存儲數據,本文主要介紹MySQL數據目錄的組織架構。 數據目錄的位置 可以通過以下幾個方法查看MySQL數據目錄的位置:1)對于一個正在運行的MySQL服務器來

[MySQL] 數據目錄的組織架構 歸根到底,MySQL是運行在操作系統上的一個軟件,它需要借助于文件系統存儲數據,本文主要介紹MySQL數據目錄的組織架構。 數據目錄的位置 可以通過以下幾個方法查看MySQL數據目錄的位置:1)對于一個正在運行的MySQL服務器來說,可
[MySQL] 數據目錄的組織架構
歸根到底,MySQL是運行在操作系統上的一個軟件,它需要借助于文件系統存儲數據,本文主要介紹MySQL數據目錄的組織架構。
數據目錄的位置
可以通過以下幾個方法查看MySQL數據目錄的位置:
1)對于一個正在運行的MySQL服務器來說,可以通過查看mysqld的進程獲取MySQL數據目錄的位置,如下所示:
[root@lx202 /data/mysql/data ]# ps -ef|grep mysqld
root 5841 7337 0 15:09 pts/1 00:00:00 grep --color=auto mysqld
root 27034 1 0 2012 ? 00:00:00 /bin/sh /opt/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/lx202.pid
mysql 27889 27034 30 2012 ? 111-03:03:55 /opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data/mysql/data --plugin-dir=/opt/mysql/lib/mysql/plugin --user=mysql --log-error=/data/mysql/log/alert.log --open-files-limit=65535 --pid-file=/data/mysql/data/lx202.pid --socket=/opt/mysql/run/mysql.sock --port=3306
其中的--datadir指定的就是數據目錄的位置。
2)查看my.cnf的配置信息:
[mysqld]
datadir = /data/mysql/data
3)登陸數據庫,運行show variables命令查看:
mysql> show variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| datadir | /data/mysql/data/ |
+---------------+-------------------+
1 row in set (0.00 sec)
數據庫在文件系統的表示方法
MySQL里,每個數據庫都對應一個數據目錄里的一個字目錄,當你用create database db_name語句創建一個數據庫時,將在數據目錄下創建一個同名的子目錄,在該子目錄下,有一個db.opt文件,用于記錄數據庫默認的字符集和排序方式,如下所示:
[root@lx202 /data/mysql/data/portal ]# cat db.opt
default-character-set=utf8
default-collation=utf8_general_ci
表在文件系統的表示方式
因為MySQL支持多個存儲引擎,所以表在文件系統的表示方式根據存儲引擎的不同而不同。但無論哪種存儲引擎,每個表至少對應一個同名的.frm文件,該文件用于描述表結構信息。除了.frm文件之外,各個存儲引擎用于存儲數據的文件各不相同,下面我們介紹幾種常見的存儲引擎:
MyISAM
- table_name.MYD:數據文件
- table_name.MYI:索引文件
MERGE
- table_name.MRG:文本文件
InnoDB
InnoDB表的存儲是基于表空間的,有兩種類型的表空間:
1)共享表空間:由數據目錄里的一個或多個大文件構成,這些文件共同組成了一個在邏輯上連續不斷的存儲區域,共享表空間是通過參數innodb_data_file_path設置的,如下所示:
innodb_data_file_path = ibdata1:10G;ibdata2:5G:autoextend
根據上面的配置,將在數據目錄下創建兩個文件ibdata1和ibdata2來存放innodb的數據。
2)獨占表空間:當設置innodb_file_per_table = 1后,每個表對對應一個單獨使用的表空間文件.ibd(在其對應的數據庫目錄下)
這里需要注意的是:即使你配置了獨占表空間,共享表空間也是需要的,因為InnoDB的數據字典必須存放在共享表空間里。
視圖和觸發器在文件系統的表示方式
每個視圖包含一個.frm文件,它包含該視圖的定義和屬性等。
觸發器保存在一個.TRG文件里,里面包含著它的定義和屬性,但文件不是以觸發器命名,而是以觸發器相關聯的表命名。
存儲過程和函數在文件系統的表示方法
MySQL的存儲過程和函數分別存放在mysql數據庫目錄的proc*和func*文件里,如:
[root@lx202 /data/mysql/data/mysql ]# ls proc*
proc.frm proc.MYD proc.MYI procs_priv.frm procs_priv.MYD procs_priv.MYI
[root@lx202 /data/mysql/data/mysql ]# ls func*
func.frm func.MYD func.MYI
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
[MySQL]數據目錄的機關架構
[MySQL]數據目錄的機關架構:[MySQL] 數據目錄的組織架構 歸根到底,MySQL是運行在操作系統上的一個軟件,它需要借助于文件系統存儲數據,本文主要介紹MySQL數據目錄的組織架構。 數據目錄的位置 可以通過以下幾個方法查看MySQL數據目錄的位置:1)對于一個正在運行的MySQL服務器來