当前位置: 首页 > 图文教程 > 数据库 > MYSQL > Mysql入门系列:MySQL数据目录的位置

MYSQL
提高MySQL 查询效率的三个技巧
mysql同步复制搭建方法指南详细步骤
详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始
MySQL Replace INTO的使用
mysql 分页优化解析
同时运行多个MySQL服务器的方法
mysql主从服务器同步心得体会
删除mysql数据库中的重复数据记录
mysql忘记密码的解决方法
mysql替换表中的字符串的sql语句
Lost connection to MySQL server during query的解决
mysql出现Error performing load command的解决方法
mysql中的“money”类型说明
mysql常见错误集锦
MYSQL administrator 使用
MYSQL初学者命令行使用指南
MySQL的Query Cache原理分析
linux下改良版本mysqldump来备份MYSQL数据库
mysql删除表中某一字段重复的记录
log引起的mysql不能启动的解决方法

MYSQL 中的 Mysql入门系列:MySQL数据目录的位置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 87 ::
收藏到网摘: n/a

从概念上讲,大多数关系数据库系统都是类似的:它们都由一组数据库组成,且每个数据库都包含一组表。但是,所有的系统都有自己的管理数据的方法, 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 中,输出结果类似于如下所示:

该输出结果指明了服务器主机中数据目录的位置/ us r / l o c a l / v a r。

在Windows 中,输出结果类似于如下所示:

如果正在运行多个服务器,它们将监听不同的TCP/IP 端口号和套接字。可以通过提供合适的--port 或--socket 选项连接到每个服务器监听的端口和套接字上:

mysqladmin 命令可在您连接服务器的任何一台主机上运行。如果需要连接到远程主机上的服务器,则使用--host = host_name 选项:

以下为引用的内容:

  % mysqladmin --host=host_name variables

在Windows 中,您可以购买Windows NT 服务器,它通过使用--pipe 迫使一个指定的管道连接,并使用--socket = pipe_name 指定该管道的名称,在该管道上进行监听。

以下为引用的内容:

  c:>mysqladmin --pipe --socket=pipe_name variables

可使用ps 来查看任何当前执行mysql进程的命令行。试一试下列的命令(根据您的系统所支持的ps 版本)并查找显示在输出结果中的这些命令的- - d a t a d i r:

以下为引用的内容:

  % ps axww | grep mysqld BSD-style ps

  % ps -ef | grep mysqld System V-style ps

如果系统运行多个服务器(因为一次发现了多个数据目录位置),则ps 命令将会特别有用。它的缺点是: ps 必须运行在服务器的主机上,并且除非--datadir 选项在mysqld 命令行中明确指定,否则将产生无用的信息。

如果MySQL从源程序分发包中安装,可以检查其配置信息以确定数据目录的位置。例如,在最高级的Makefile 中该位置是可用的。但是,要小心:位置是Makefile 中的变量localstatedir 的值,而不是datadir 的值。同样,如果分发包定位在NFS 装配文件系统中,并且是用于为几个主机建立MySQL的,则配置信息反映最近建立分发包的主机。它可能不显示您感兴趣的主机的数据目录。

如果前面的任何方法都不成功,可使用find 搜索数据库文件。下列命令将搜索. f r m(描述)文件,它是MySQL安装程序的组成部分:

以下为引用的内容:

  % find / -name " *.frm" -print

在本章的这些例子中,笔者将MySQL数据目录的位置表示为DATA D I R。您可以将其解释成为您自己的机器中的数据目录的位置。