日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql数据库的目录_了解MySQl数据库目录

發(fā)布時(shí)間:2023/12/4 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库的目录_了解MySQl数据库目录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)庫(kù)目錄是MySQL數(shù)據(jù)庫(kù)服務(wù)器存放數(shù)據(jù)文件的地方,不僅包括有關(guān)表的文件,還包括數(shù)據(jù)文件和MySQL的服務(wù)器選項(xiàng)文件。不同的分發(fā),數(shù)據(jù)庫(kù)目錄的缺省位置是不同的。

數(shù)據(jù)目錄的位置

缺省的數(shù)據(jù)庫(kù)位置

缺省數(shù)據(jù)庫(kù)的位置編譯在服務(wù)器中。

◆如果您是在一個(gè)源程序分發(fā)包中安裝 MySQL,典型的缺省位置可能是 /usr/local/var;

◆如果在二進(jìn)制分發(fā)包中安裝 MySQL,則為 /usr/local/mysql/ data;

◆在 RPM 文件中安裝,為 /var/lib/mysql。

◆對(duì)于windwos平臺(tái)上的分發(fā),其位置時(shí)BASEDIRdata

數(shù)據(jù)目錄的位置可以在啟動(dòng)服務(wù)器時(shí)通過--datadir = / path / to / dir 明確地指定。如果您想將數(shù)據(jù)目錄放置在其他地方而非缺省的位置,則這個(gè)選項(xiàng)是有用的。

了解數(shù)據(jù)庫(kù)目錄的位置

作為一名 MySQL 管理員,您應(yīng)該知道數(shù)據(jù)目錄在哪里。如果運(yùn)行多個(gè)服務(wù)器,那么您應(yīng)該掌握所有數(shù)據(jù)目錄的位置。但是,如果不知道目錄的位置(或許您正在代替前一位管理員,而他留下的記錄很糟糕),有幾種方法可以用來查找它:

1、可使用 mysqladmin 變量直接從服務(wù)器中得到數(shù)據(jù)目錄路徑名。在 UNIX 中,輸出結(jié)果類似于如下所示:

$mysqladmin variables

+-------------------------+---------------------------

| Variable_name?????????? | Value

+-------------------------+---------------------------

| ansi_mode?????????????? | OFF

| back_log??????????????? | 50

| basedir???????????????? | /var/local

| connect_timeout???????? | 5

| concurrent_insert?????? | ON

| datadir???????????????? | /usr/local/var

該輸出結(jié)果指明了服務(wù)器主機(jī)中數(shù)據(jù)目錄的位置 /usr/local/var。

在 Windows 中,輸出結(jié)果類似于如下所示:

c:mysqlin>mysqladmin variables

+-------------------------+---------------------------

| Variable_name?????????? | Value

+-------------------------+---------------------------

| ansi_mode?????????????? | OFF

| back_log??????????????? | 50

| basedir???????????????? | c:mysql

| connect_timeout???????? | 5

| concurrent_insert?????? | ON

如果正在運(yùn)行多個(gè)服務(wù)器,它們將監(jiān)聽不同的 TCP/IP 端口號(hào)和套接字。可以通過提供合適的--port 或 --socket 選項(xiàng)連接到每個(gè)服務(wù)器監(jiān)聽的端口和套接字上:

$mysqladmin –port=port=port_num variables

$mysqladmin –socket=/path/to/socket variables

mysqladmin 命令可在您連接服務(wù)器的任何一臺(tái)主機(jī)上運(yùn)行。如果需要連接到遠(yuǎn)程主機(jī)上的服務(wù)器,則使用 --host = host_name 選項(xiàng):

$mysqladmin –host=host_name varibles

2、在Unix平臺(tái)上,可使用 ps 來查看任何當(dāng)前執(zhí)行 mysql 進(jìn)程的命令行。試一試下列的命令(根據(jù)您的系統(tǒng)所支持的 ps 版本)并查找顯示在輸出結(jié)果中的這些命令的 --datadir:

$ps au | grep mysqld

如果系統(tǒng)運(yùn)行多個(gè)服務(wù)器(因?yàn)橐淮伟l(fā)現(xiàn)了多個(gè)數(shù)據(jù)目錄位置),則 ps 命令將會(huì)特別有用。它的缺點(diǎn)是:ps 必須運(yùn)行在服務(wù)器的主機(jī)上,并且除非 --datadir 選項(xiàng)在 mysqld 命令行中明確指定,否則將產(chǎn)生無(wú)用的信息。

3、如果 MySQL 從源程序分發(fā)包中安裝,可以檢查其配置信息以確定數(shù)據(jù)目錄的位置。例如,在最高級(jí)的 Makefile 中該位置是可用的。但是,要小心:位置是 Makefile 中的變量localstatedir 的值,而不是 datadir 的值。同樣,如果分發(fā)包定位在 NFS 裝配文件系統(tǒng)中,并且是用于為幾個(gè)主機(jī)建立 MySQL的,則配置信息反映最近建立分發(fā)包的主機(jī)。它可能不顯示您感興趣的主機(jī)的數(shù)據(jù)目錄。

4、如果前面的任何方法都不成功,可使用 find 搜索數(shù)據(jù)庫(kù)文件。下列命令將搜索 .frm(描述)文件,它是 MySQL 安裝程序的組成部分:

$find / -name? “*.frm” –print

在平臺(tái)上的搜索非常簡(jiǎn)單,本節(jié)就不給出例子了。

在本章的這些例子中,筆者將 MySQL 數(shù)據(jù)目錄的位置表示為 DATADIR。您可以將其解釋成為您自己的機(jī)器中的數(shù)據(jù)目錄的位置。

的表示法

由 MySQL 管理的每個(gè)數(shù)據(jù)庫(kù)都有自己的數(shù)據(jù)庫(kù)目錄,它們是數(shù)據(jù)目錄的子目錄,與所表示的數(shù)據(jù)庫(kù)有相同的名稱。例如,數(shù)據(jù)庫(kù) my_db 對(duì)應(yīng)于數(shù)據(jù)庫(kù)目錄 DATADIR/my_db。

這個(gè)表示法使得幾個(gè)數(shù)據(jù)庫(kù)級(jí)的語(yǔ)句的實(shí)現(xiàn)是非常容易的。CREATE DATABASE db_name 使用只允許對(duì) MySQL 服務(wù)器用戶(服務(wù)器運(yùn)行的UNIX 用戶)進(jìn)行訪問的所有權(quán)和方式,并在數(shù)據(jù)目錄中創(chuàng)建一個(gè)空目錄 db_name。這等價(jià)于以服務(wù)器主機(jī)中的服務(wù)器用戶的身份通過執(zhí)行下列命令手工創(chuàng)建數(shù)據(jù)庫(kù):

$ mkdir DATADIR/db_name 創(chuàng)建數(shù)據(jù)庫(kù)目錄

$ chmod 700 DATADIR/db_name? 使它僅對(duì) MySQL 服務(wù)器用戶可訪問

通過空目錄表示新數(shù)據(jù)庫(kù)的方法與其他數(shù)據(jù)庫(kù)系統(tǒng)完全不同,那些數(shù)據(jù)庫(kù)系統(tǒng)甚至要為“空”數(shù)據(jù)庫(kù)創(chuàng)建許多控制文件或系統(tǒng)文件。

DROP DATABASE 語(yǔ)句也很容易實(shí)現(xiàn)。DROP DATABASE db_name 刪除數(shù)據(jù)目錄中的 db_name 目錄以及其中的所有表文件。這個(gè)語(yǔ)句類似于下列命令:

$rm -rf DATADIR/db_name

其區(qū)別是,服務(wù)器只刪除帶有表的擴(kuò)展名的文件。如果已經(jīng)在該數(shù)據(jù)庫(kù)目錄中創(chuàng)建了其他的文件,服務(wù)器將使它們保持完整,并且不刪除該目錄本身。

SHOW DATABASE 只不過是對(duì)應(yīng)位于數(shù)據(jù)目錄中的子目錄名稱的一個(gè)列表。有些數(shù)據(jù)庫(kù)系統(tǒng)需要保留一個(gè)列出所有需要維護(hù)的數(shù)據(jù)庫(kù)的主表,但是,在 MySQL 中沒有這樣的結(jié)構(gòu)。由于數(shù)據(jù)目錄結(jié)構(gòu)的簡(jiǎn)單性,數(shù)據(jù)庫(kù)的列表是隱含在該數(shù)據(jù)目錄的內(nèi)容中的,像主表這樣的表可能會(huì)引起不必要的開銷。

數(shù)據(jù)庫(kù)表的表示法

數(shù)據(jù)庫(kù)中的每個(gè)表在數(shù)據(jù)庫(kù)目錄中都作為三個(gè)文件存在:一個(gè)格式(描述)文件、一個(gè)數(shù)據(jù)文件和一個(gè)索引文件。每個(gè)文件的基名是該表名,擴(kuò)展名指明該文件的類型。擴(kuò)展名如表5-1所示。數(shù)據(jù)和索引文件的擴(kuò)展名指明該表是否使用較老的 ISAM 索引或較新的 MyISAM 索引。

當(dāng)發(fā)布定義一個(gè)表結(jié)構(gòu)的 CREATE TABLE tbl_name 語(yǔ)句時(shí),服務(wù)器創(chuàng)建 tbl_name.frm 文件,它包含該結(jié)構(gòu)的內(nèi)部編碼。該語(yǔ)句還創(chuàng)建空的數(shù)據(jù)文件和索引文件,這些文件的初始信息表明沒有記錄和索引(如果 CREATE TABLE 語(yǔ)句包含索引說明,則該索引文件將反映這些索引)。描述表的文件的所有權(quán)和方式被設(shè)置為只允許對(duì) MySQL 服務(wù)器用戶的訪問。

當(dāng)發(fā)布 ALTER TABLE 語(yǔ)句時(shí),服務(wù)器對(duì) tbl_name.frm 重新編碼并修改數(shù)據(jù)文件和索引文件的內(nèi)容以反映由該語(yǔ)句表明的結(jié)構(gòu)變化。對(duì)于 CREATE 和 DROP INDEX 也是如此,因?yàn)榉?wù)器認(rèn)為它們等價(jià)于 ALTER TABLE 語(yǔ)句。DROP TABLE 刪除代表該表的三個(gè)文件。

盡管可以通過刪除數(shù)據(jù)庫(kù)目錄中的對(duì)應(yīng)某個(gè)表的三個(gè)文件來刪除該表,但不能手工創(chuàng)建或更改表。例如,如果 my_db 是當(dāng)前的數(shù)據(jù)庫(kù),DROP TABLE my_tbl 大致等價(jià)于下列命令:

來自于 SHOW TABLES my_db 的輸出結(jié)果正是 my_db 數(shù)據(jù)庫(kù)目錄中 .frm 文件基名的一個(gè)列表。某些數(shù)據(jù)庫(kù)系

總結(jié)

以上是生活随笔為你收集整理的mysql数据库的目录_了解MySQl数据库目录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。