mysql數(shù)據(jù)庫保存路徑查找方式
mysql數(shù)據(jù)庫保存路徑查找
- sqlyon-創(chuàng)建的表 保存在哪里?
- 數(shù)據(jù)庫保存路徑
- sql 8.0
1、找到sql配置文件ini
2、不要完全復(fù)制 只復(fù)制到 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 即可
3、找到配置文件my.ini打開,Ctrl+f,搜索datadir,找到Data目錄,Data目錄即存儲位置
mysql之?dāng)?shù)據(jù)目錄解讀
MySQL8的數(shù)據(jù)目錄
1. mysql8的主要目錄
可以使用 find / -name mysql
命令查看mysql的所有目錄。
1.1 數(shù)據(jù)庫文件的存放目錄
mysql數(shù)據(jù)庫文件的存放路徑為:/var/lib/mysql
mysql程序在啟動時會到文件系統(tǒng)的某個目錄下加載一些文件,之后再運行過程中產(chǎn)生的數(shù)據(jù)也會存儲到這個目錄下的某些文件中,這個路徑就稱為數(shù)據(jù)目錄。
數(shù)據(jù)目錄對應(yīng)著一個系統(tǒng)變量datadir
,我們使用客戶端與服務(wù)器建立連接之后查看這個系統(tǒng)變量的值即可。
1.2 命令目錄
/usr/bin
和/usr/sbin
它里面存儲了許多關(guān)于控制客戶端程序和服務(wù)器程序的命令,許多可執(zhí)行文件比如mysql,mysqld,mysqld_safe等。而數(shù)據(jù)目錄是用來存儲mysql在運行過程中產(chǎn)生的數(shù)據(jù)。
1.3 配置文件目錄
/usr/share/mysql-8.0
和/etc/my.cnf
2. 數(shù)據(jù)庫和文件系統(tǒng)
2.1 默認(rèn)數(shù)據(jù)庫
mysql自帶4個系統(tǒng)數(shù)據(jù)庫:
mysql
mysql系統(tǒng)自帶的核心數(shù)據(jù)庫,存儲了mysql的用戶賬戶和權(quán)限信息,一些存儲過程、事件的定義信息,一些運行過程中產(chǎn)生的日志信息,一些幫助信息以及時區(qū)信息等。
information_schema
這個數(shù)據(jù)庫保存著mysql服務(wù)器所有其他數(shù)據(jù)庫的信息。比如有那些表、那些視圖、那些觸發(fā)器、那些列、那些索引。這些數(shù)據(jù)并不是真實的用戶數(shù)據(jù),而是描述性信息,有時候也稱為元數(shù)據(jù)。在該庫中提供了一些以innodb_sys開頭的表,用于表示內(nèi)部系統(tǒng)表。
performation_schema
主要保存mysql服務(wù)器運行過程中的一些狀態(tài)信息,可以用來監(jiān)控mysql服務(wù)的各類指標(biāo)。包括統(tǒng)計最近執(zhí)行了那些語句,在執(zhí)行過程的各個階段都花費了多長時間,內(nèi)存的使用情況等信息。
sys
該數(shù)據(jù)庫主要通過視圖的形式把information_schema
和 performation_schema
結(jié)合起來,幫助開發(fā)人員監(jiān)控mysql的技術(shù)性能。
2.2 數(shù)據(jù)庫在文件系統(tǒng)中的表示
使用create database
語句創(chuàng)建一個數(shù)據(jù)庫時,在文件系統(tǒng)上實際發(fā)生了什么呢?
每個數(shù)據(jù)庫都對應(yīng)數(shù)據(jù)目錄下的一個子目錄,每當(dāng)新創(chuàng)建一個數(shù)據(jù)庫時,mysql會做如下兩點:
- (1)在數(shù)據(jù)目錄下創(chuàng)建一個和數(shù)據(jù)庫名同名的子目錄。
- (2)在該子目錄下創(chuàng)建一個db.opt的文件(5.7及之前版本),這個文件中包含了該數(shù)據(jù)庫的各種數(shù)據(jù),比如該數(shù)據(jù)庫的字符集和比較規(guī)則。
這個數(shù)據(jù)目錄下除了information_schema
數(shù)據(jù)庫外,其他數(shù)據(jù)庫在該目錄下都有對應(yīng)子目錄。
2.3 表在文件系統(tǒng)中的表示
我們的數(shù)據(jù)其實都是以記錄的形式插入到表中,每個表的信息其實可以分為兩種:
- 表結(jié)構(gòu)的定義
- 表中數(shù)據(jù)
2.3.1 innodb存儲引擎
- 1.表結(jié)構(gòu)
innodb在數(shù)據(jù)目錄下對應(yīng)的數(shù)據(jù)庫子目錄下創(chuàng)建一個專門用于描述表結(jié)構(gòu)的文件,文件名為表名.frm
,這個文件的格式在不同平臺上都是相同的,以二進制格式存儲。
- 2.表中數(shù)據(jù)和索引
系統(tǒng)表空間
默認(rèn)情況下innodb會在數(shù)據(jù)目錄下創(chuàng)建一個ibdata1,大小為12M的文件。這個文件就是對應(yīng)的系統(tǒng)表空間。該文件可以自擴展,當(dāng)不夠用時會自己增加文件大小。
可以通過修改my.cnf來讓系統(tǒng)表空間對應(yīng)多個文件,或者改名字:
innodb_data_file_path = data1:512M;data2:512M:autoextend
這樣mysql啟動之后就會創(chuàng)建兩個512M大小的文件作為系統(tǒng)表空間,其中autoextend表示自擴展。
在mysql5.5.7到mysql5.6.6之間的各個版本中,我們的表中數(shù)據(jù)都會默認(rèn)存儲到這個系統(tǒng)表空間。
獨立表空間
在mysql5.6.6以及之后的版本,innodb并不會默認(rèn)的把各個表的存儲到系統(tǒng)表空間,而是為每一個表建立一個獨立表空間。會在該表數(shù)據(jù)庫子目錄下創(chuàng)建一個表名.ibd的文件
設(shè)置
我們可以自己指定使用系統(tǒng)表空間還是獨立表空間來存儲。
這個功能由啟動參數(shù)innodb_file_pre_table
控制,比如說我們希望將表數(shù)據(jù)都存儲到系統(tǒng)表空間時,可以在配置文件中配置:
- 3. mysql8.0
mysql8.0版本后,沒有opt和frm文件,數(shù)據(jù)都放在ibd文件中。
2.3.2 MyISAM存儲引擎
- 1.表結(jié)構(gòu)
在存儲表結(jié)構(gòu)方面,myisam和innodb一樣,也是在數(shù)據(jù)目錄下對應(yīng)的數(shù)據(jù)庫子目錄下創(chuàng)建了一個專門用于描述表結(jié)構(gòu)的文件:表明.frm
- 2.表中數(shù)據(jù)和索引
- 3. mysql8.0
2.4 視圖在文件系統(tǒng)中的表示
視圖其實是虛擬的表,所以在存儲視圖的時候不需要存儲真實的數(shù)據(jù),只需要把它的結(jié)構(gòu)存儲起來就行了。指揮存儲一個視圖名.frm文件。
2.5 其他文件
除了上邊說的用戶自己存儲的數(shù)據(jù)外,數(shù)據(jù)目錄下還包括為了更好運行程序的一些額外文件,主要包括:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL之終端Terminal(dos界面)管理數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)的基本操作
這篇文章主要介紹了MySQL之終端(Terminal)管理數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)的基本操作,需要的朋友可以參考下2015-03-03MySQL學(xué)習(xí)之事務(wù)與并發(fā)控制
這篇文章主要介紹了MySQL中的事務(wù)與并發(fā)控制,一個事務(wù)可以理解為一組操作,這一組操作要么全部執(zhí)行,要么全部不執(zhí)行,想了解更多的小伙伴,可以參考閱讀本文2023-03-03MySQL命令行中給表添加一個字段(字段名、是否為空、默認(rèn)值)
本文介紹MySQL數(shù)據(jù)庫使用SQL語句來在現(xiàn)有的表中,添加一個新的字段,包括設(shè)置字段的是否為空、默認(rèn)值等2016-04-04MySQL 字符串截取相關(guān)函數(shù)小結(jié)
本文是腳本之家小編給大家收藏整理的關(guān)于MySQL 字符串截取相關(guān)函數(shù)小結(jié),非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-04-04ERROR CODE: 1175 YOU ARE USING SAFE UPDATE MODE AN
這篇文章主要介紹了ERROR CODE: 1175 YOU ARE USING SAFE UPDATE MODE AN,本文是在MySQL Workbench的環(huán)境操作,需要的朋友可以參考下2014-11-11MySQL ERROR 1045 (28000): Access denied for user ''root''@''
這篇文章主要介紹了MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解決辦法的相關(guān)資料,需要的朋友可以參考下2016-05-05