📄 1840.html
字号:
href="index.html" tppabs="http://www.linuxhero.com/docs/index.html"><IMG height=83
src="images/header_r1_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c1.gif" width=472 border=0
name=header_r1_c1></A></TD>
<TD colSpan=3>
<form action="http://www.linuxhero.com/docs/search.html" method=get>
<table
style="BORDER-RIGHT: #c4c4c4 1px solid; BORDER-TOP: #c4c4c4 1px solid; BORDER-LEFT: #c4c4c4 1px solid; BORDER-BOTTOM: #c4c4c4 1px solid"
cellspacing=0 cellpadding=3 width="95%" border=0 align="center">
<tbody>
<tr>
<td noWrap background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif">
<div align=center><font class=normalfont>搜索文章:
<input type=hidden value=result name=action2>
<input type=radio checked value=title name=type>标题
<input type=radio value=content name=type>内容
<input type=image src="images/button_go.gif" tppabs="http://www.linuxhero.com/docs/images/button_go.gif" border=0 name=image2>
</font></div>
</td>
</tr>
<tr>
<td noWrap>
<div align="center">
<input maxlength=100 size=30 name=keyword2>
</div>
</td>
</tr></tbody>
</table>
</form>
</TD>
<TD rowSpan=2><IMG src="images/header_r1_c7.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c7.gif" width=26 border=0 name=header_r1_c7></TD>
<TD><IMG height=83 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 border=0></TD></TR>
<TR>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif"><IMG height=22
src="images/header_r2_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r2_c1.gif" width=296 border=0
name=header_r2_c1></TD>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colSpan=5>
<DIV align=right><FONT class=normalfont>当前位置:
<A href="index.html" tppabs="http://www.linuxhero.com/docs/index.html">本站首页</A>
<font color="#FF6699">>></font>
<A href="type30.html" tppabs="http://www.linuxhero.com/docs/type30.html">mysql</A> | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
</TD>
<TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff
border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>mysql数据目录结构(1)</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br> 从概念上讲,大多数关系数据库系统是相似的:它们有一系列数据库组成,每个数据库<br>
包含一系列数据库表,但每个系统有各自组织其管理的数据方式,mysql也不例外。<br>
缺省地,所有由mysql服务器mysqld管理的数据存储在一个称为mysql数据目录的地方,<br>
所有数据库都存放在哪儿,也包括提供服务器操作信息的状态文件。 如果你对一个mysql安<br>
装执行管理任务,你应该熟知数据目录的布局及用途。<br>
本文介绍下列专题:<br>
如何确定数据目录的位置。<br>
服务器如何组织并提供对数据库和它管理的表的访问。<br>
在哪里找到由服务器生成的状态文件记忆它们包含什么内容。<br>
如何改变缺省地点或数据目录或单独数据库的组织结构。<br>
<br>
1、数据目录的位置<br>
一个缺省数据目录被编译进了服务器,如果你从一个源代码分发安装mysql, 典型的缺<br>
省目录为/usr/local/var,如果从RPM文件安装则为/var/lib/mysql, 如果从一个二进制分<br>
发安装则是/usr/local/mysql/data。<br>
在你启动服务器,通过使用一个--datadir=/path/to/dir选项可以明确指定数据目录位<br>
置。如果你想把数据目录置于其它缺省位置外的某处,这很有用。<br>
作为一名mysql管理员,你应该知道你的数据目录在哪里。如果你运行多个服务器, 你<br>
应该是到所有数据目录在哪里,但是如果你不知道确切的位置,由多种方法找到它:<br>
使用mysqladmin variables从你的服务器直接获得数据目录路径名。 查找datadir变量<br>
的值,在Unix上,其输出类似于:<br>
%mysqladmin variables<br>
<br>
+----------------------+----------------------+| variable_name | Value |+---<br>
-------------------+----------------------+| back_log | 5 || connect_timeout <br>
| 5 || basedir | /var/local/ || datadir | /usr/local/var/ |....<br>
<br>
在Windows上,输出可能看上去像这样:<br>
c:mysqladmin variables<br>
+----------------------+----------------------+| variable_name | Value |+---<br>
-------------------+----------------------+| back_log | 5 || connect_timeout <br>
| 5 || basedir | c:mysql || datadir | c:mysqldata |....<br>
<br>
如果你有多个服务器在运行,它们将在不同的TCP/IP端口或套接字上监听,通过提供连<br>
接服务器正在监听的端口或套接字的--port或--socket选项,你可以轮流获得它们每一个的<br>
数据目录信息:<br>
%msqladmin --port=port_name variables<br>
%mysqladmin --socket=/path/to/socket variables<br>
mysqladmin命令可运行在任何你能从其连接服务器的主机上,如果你想在一个远程主机<br>
连接服务器,使用一个--host=host_name选项:<br>
%mysqladmin --host=host_name variables<br>
在Windows上, 你可以通过使用--pipe强制一个命令管道连接和--socket=pipe_name指<br>
定管道名来连接监听一个命令管道的NT服务器:<br>
c:mysqladmin --pipe --socket=pipe_name variables<br>
你可以使用ps命令查看任何正在运行mysqld 进程的命令行。<br>
试一下下列命令之一并寻找--datadir:<br>
%ps axww | grep mysql BSD风格<br>
%ps -ef | grep mysqld System V风格<br>
如果你的系统运行多个服务器,ps命令可能特别有用,因为你能马上发现多个数据目录<br>
位置,缺点是必须在服务器上运行,而且可能没有有用的信息产生,除非在mysqld命令行上<br>
明确指定了--datadir选项。<br>
如果mysql是从一个源代码分发安装的,你可以检查其配置信息确定数据目录位置。 例<br>
如,位置可从顶级Makefile中获得,但是注意,位置是Makefile中的localstatedir值, 不<br>
是datadir,而且,如果分发位于一个NFS挂载的文件系统并用来为多个主机构建mysql, 配<br>
置信息反映了分发被最新构建的主机,这可能不能提供你感兴趣的主机的数据目录信息。<br>
如果上述方式失败,你可以用find寻找数据库文件,下列命令寻找“.frm”文件,它是任<br>
何mysql安装的一部分:<br>
<br>
% find / -name ".frm" -print<br>
<br>
在下文各例中,用DATADIR表示mysql数据目录位置。<br>
<br>
2、数据目录结构<br>
mysql数据目录包含了服务器管理的所有数据目录,这些文件被组织成一个树状结构,<br>
通过利用Unix或Windows文件系统的层次结构直接实现。<br>
每个数据库对应于数据目录下的一个目录。<br>
在一个数据库中的表对应于数据目录下的文件。<br>
数据目录也包含由服务器产生的几个状态文件,如日志文件。这些文件提供了关于服务<br>
器操作的重要信息。对管理特别在出了问题而试图确定问题原因时很有价值。例如,如果某<br>
个特定查询杀死服务器,你可以通过检查日志文件判别捣乱的查询。<br>
<br>
2.1 mysql服务器怎样提供对数据的访问<br>
在数据目录下的一切由一个单独的实体-mysql服务器mysqld管理,客户程序绝不直接操<br>
作数据。相反,服务器提供数据可访问的切入点,它是客户程序与它们想使用的数据之间的<br>
中介。<br>
当服务器启动时,如果有需要,它打开日志文件,然后通过监听网络连接位数据目录呈<br>
现一个网络接口。要访问数据,客户程序建立对服务器的一个连接, 然后以mysql查询传输<br>
请求来执行希望的操作。服务器执行每一个操作并将结果发回用户。服务器是多线程的并能<br>
服务多个同时的客户连接。然而,因为修改操作一个执行一个,实际效果是顺序化请求,以<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -