MySQL數(shù)據(jù)庫文件是存儲在服務器上的數(shù)據(jù)文件,包括數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)表數(shù)據(jù)以及數(shù)據(jù)庫相關的其他元數(shù)據(jù)。在安裝MySQL數(shù)據(jù)庫時,我們需要設置數(shù)據(jù)存儲目錄,MySQL默認將其存儲在/var/lib/mysql目錄下。
[root@localhost ~]# ll /var/lib/mysql/ total 108632 drwxr-xr-x 2 mysql mysql 4096 Nov 21 2019 asta_ws drwxr-xr-x 2 mysql mysql 24576 Dec 14 2019 contacts -rw-rw---- 1 mysql mysql 56 Dec 14 2019 db.opt drwxr-xr-x 2 mysql mysql 4096 Aug 10 03:38 mysql -rw-rw---- 1 mysql mysql 1589248 Aug 22 11:51 mysqld-slow.log -rw-rw---- 1 mysql mysql 1835127 Aug 15 03:02 mysqld-slow.log-2019-11-03 -rw-rw---- 1 mysql mysql 509760 Aug 22 11:51 mysqld-slow.log-20200816 -rw-rw---- 1 mysql mysql 18760 Aug 22 11:51 mysqld-slow.log-20200822 drwxr-xr-x 2 mysql mysql 4096 Dec 20 2019 test_db
其中,mysql目錄存儲的是MySQL系統(tǒng)數(shù)據(jù)庫和一些全局信息,例如用戶賬號、權(quán)限等;其他目錄則是用戶自己創(chuàng)建的數(shù)據(jù)庫。
當我們創(chuàng)建一個新數(shù)據(jù)庫時,MySQL會在存儲路徑下創(chuàng)建一個與該數(shù)據(jù)庫同名的目錄,其中包含該數(shù)據(jù)庫的所有數(shù)據(jù)文件。
mysql>CREATE DATABASE example; Query OK, 1 row affected (0.02 sec) [root@localhost ~]# cd /var/lib/mysql/ [root@localhost mysql]# ll total 108636 drwxr-xr-x 3 mysql mysql 4096 Aug 22 11:59 example
在MySQL的數(shù)據(jù)存儲目錄中,我們也可以找到與每個表對應的數(shù)據(jù)文件。在該目錄中,以數(shù)據(jù)表名稱為前綴的文件為該表的數(shù)據(jù)文件,以.frm為后綴。例如:
[root@localhost example]# ll total 8 -rw-rw---- 1 mysql mysql 111 Aug 22 11:59 example.frm
如果需要備份和還原MySQL數(shù)據(jù)庫,我們可以將其數(shù)據(jù)文件全部復制到其他服務器上,但需要保證該服務器與源服務器的操作系統(tǒng)、MySQL版本、字符集等環(huán)境一致,否則可能會導致數(shù)據(jù)無法正確加載。