數據庫是一個復雜而又關鍵的系統,為確保系統安全、高效運行,需熟悉數據庫內部的運作機制,掌握各種維護工具,並做好日常的管理工作。下面列舉幾項主要工作職責:
服務器的關閉和啟動;
管理用戶帳號;
管理日志文件;
數據庫備份恢復;
數據庫優化;
確保數據庫數據安全;
數據庫軟件升級。
數據目錄是用來存放數據表和相關信息的地方,是數據庫的核心。在MySQL中的數據目錄根據不同平台的有一些差異:
在UNIX/Linux系統上,如果用源碼編譯安裝,數據目錄的位置默認是在/usr/local/MySQL/var中;
在UNIX/Linux系統上,如果用二進制發行版安裝,數據目錄的位置默認是在/usr/local/MySQL/data中;
在Windows系統上,數據目錄的位置默認是在c:/MySQL/data中;
我們還可用命令向服務器查詢數據目錄的位置,數據目錄的變量名是datadir,如:
% MySQLadmin variables
如果在一台機器上同時運行多個服務器,則可根據端口的不時來查詢每個服務器的數據目錄,如:
% MySQLadmin --host=127.0.0.1 --port=port_number variables
如果--host是localhost,系統則會用一個UNIX套接字去連接數據庫服務器,這時要使用--socket選項,所以查詢語句變成:
% MySQLadmin --host=localhost --socket=/path/to/socket variables
MySQL> SHOW VARIABLES LIKE 'datadir';
在Windows NT平台上可以使用“.”作為一條命名管道連接的主機名,用--socket選項給出命名管道的名字,如:
c:\ MySQLadmin --host=. --socket=pipe_name variables
配置文件的中[MySQLd]段中的datadir=/path/to/datadir設置也可查詢到數據目錄。
在MySQLd程序的幫助信息裡也有程序編譯時默認的數據目錄信息,可用以下命令顯示:
% MySQLd --help
數據目錄是存放數據文件的地方,每個數據庫對應目錄的不同文件。InnoDB數據表由於用表空間來管理數據庫,所以就沒這種對應關系。但也是保存在數據目錄中的,在數據目錄除保存數據庫文件外,還可能會保存以下幾類文件:
服務器的配置文件,my.cnf;
服務器的進程ID(PID)文件;
服務器的日志文件和狀態文件,這些文件對管理數據庫有重要的價值;
DES密鑰文件或服務器的SSL證書與密鑰文件。
數據目錄中的所有數據庫全部由服務器(MySQLd)來管理,客戶端不直接操作數據。服務器是客戶使用數據的唯一通道。
在MySQL中,每個數據庫其實就是在數據目錄下一個子目錄,show databases命令相當於列出數據目錄中的目錄清單。create database db_name命令會在數據目錄下新建一個db_name的目錄,以存放數據庫的數據文件。所以我們也可下面的shell命令方式來建立一個空數據庫:
% cd datadir % mkdir db_name % chmod u=rwx,go-rwx db_name
同理,刪除數據庫drop database db_name也就是刪除數據目錄中一個名為db_name的目錄及目錄中的數據表文件。我們也可用shell這進行操作:
% cd datadir % rm -rf db_name