从概念上讲,大多数关系数据库系统都是类似的:它们都由一组数据库组成,且每个数据库都包含一组表。但是,所有的系统都有自己的管理数据的方法, MySQL也不例外。
在缺省设置时,由MySQL服务器mysql管理的所有数据都存储在MySQL数据目录中。所有的数据库和提供有关服务器操作信息的状态文件也存储在那里。如果要执行MySQL安装的管理职责,应该熟悉数据目录的布局和使用。
本章包括以下内容:
怎样确定数据目录的位置。需要了解这一点,以便有效地管理其内容。
服务器怎样组织和提供对它所管理的数据库和表的访问。
在哪里查找由服务器产生的状态文件且文件中包含什么内容。它们的内容提供了关于服务器运行的信息,如果您遇到问题,这些信息将是有用的。
如何改变数据目录或单个数据库的缺省布局或组织。这对于管理系统的磁盘资源分配是重要的─例如,通过在驱动器中平衡磁盘的活动,或通过利用更多的可用空间将数据重定位到文件系统中。还可以使用这个知识来计划新数据库的布局。
即使不执行任何MySQL管理职责,也能通过阅读本章的内容而有所收获,它决不会影响您对如何运行服务器有更好的想法。
数据目录的位置
缺省数据库的位置编译在服务器中。如果您是在一个源程序分发包中安装MySQL,典型的缺省位置可能是/ us r / l o c a l / v a r;如果在二进制分发包中安装MySQL,则为/ us r / l o c a l / mysql/d a t a;在RPM 文件中安装,为/ v a r / l i b / mysql。
数据目录的位置可以在启动服务器时通过--datadir = / p a t h / to / dir 明确地指定。如果您想将数据目录放置在其他地方而非缺省的位置,则这个选项是有用的。
作为一名MySQL管理员,您应该知道数据目录在哪里。如果运行多个服务器,那么您应该掌握所有数据目录的位置。但是,如果不知道目录的位置(或许您正在代替前一位管理员,而他留下的记录很糟糕),有几种方法可以用来查找它:
可使用mysqladmin 变量直接从服务器中得到数据目录路径名。在UNIX 中,输出结果类似于如下所示: