MySQL数据目录的位置

mysql|数据|数据目录

    从概念上讲,大多数关系数据库系统都是类似的:它们都由一组数据库组成,且每个数据库都包含一组表。但是,所有的系统都有自己的管理数据的方法, MySQL也不例外。
    在缺省设置时,由MySQL服务器mysql管理的所有数据都存储在MySQL数据目录中。所有的数据库和提供有关服务器操作信息的状态文件也存储在那里。如果要执行MySQL安装的管理职责,应该熟悉数据目录的布局和使用。
    本章包括以下内容:
    怎样确定数据目录的位置。需要了解庖坏悖员阌行У毓芾砥淠谌荨?br>     服务器怎样组织和提供对它所管理的数据库和表的访问。
    在哪里查找由服务器产生的状态文件且文件中包含什么内容。它们的内容提供了关于服务器运行的信息,如果您遇到问题,这些信息将是有用的。
    如何改变数据目录或单个数据库的缺省布局或组织。这对于管理系统的磁盘资源分配是重要的─例如,通过在驱动器中平衡磁盘的活动,或通过利用更多的可用空间将数据重定位到文件系统中。还可以使用这个知识来计划新数据库的布局。
    即使不执行任何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 -- port=port_num variables
    % mysqladmin -- socket=/path/to/socket variables
    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。您可以将其解释成为您自己的机器中的数据目录的位置。

时间: 2024-12-02 13:56:24

MySQL数据目录的位置的相关文章

MySQL数据目录结构(1)转

mysql|数据|数据目录 MySQL数据目录结构(1)[晏子]从概念上讲,大多数关系数据库系统是相似的:它们有一系列数据库组成,每个数据库包含一系列数据库表,但每个系统有各自组织其管理的数据方式,MySQL也不例外.缺省地,所有由MySQL服务器mysqld管理的数据存储在一个称为MySQL数据目录的地方,所有数据库都存放在哪儿,也包括提供服务器操作信息的状态文件.如果你对一个MySQl安装执行管理任务,你应该熟知数据目录的布局及用途.本文介绍下列专题: 如何确定数据目录的位置. 服务器如何组

MySQL数据目录结构(2)转

mysql|数据|数据目录 MySQL数据目录结构(2)[晏子]   3 重定位数据库目录 前面讨论的数据目录结构是缺省配置,所有数据库和状态文件均包含其中,然而,你有某些自由决定数据目录内容的位置,本节讨论为什么你可能移走部分数据目录(或甚至目录本身).你能移走什么以及你如何做这些改变.MySQL允许你重定位数据目录或其中的成员,由几个原因你为什么要这样做: 你能将数据目录放在你缺省所在的文件系统更大容量的文件系统上. 如果你的数据目录在一个繁忙的硬盘上,你可能把它放在不太忙的磁盘上以均衡磁盘

MySQL数据目录结构

mysql|数据|数据目录 MySQL数据目录结构 蓝森林 http://www.lslnet.com 2000年5月28日 10:40 作 者: 晏子 从概念上讲,大多数关系数据库系统是相似的:它们有一系列数据库组成,每个数据库包含一系列数据库表,但每个系统有各自组织其管理的数据方式,MySQL也不例外. 缺省地,所有由MySQL服务器mysqld管理的数据存储在一个称为MySQL数据目录的地方,所有数据库都存放在哪儿,也包括提供服务器操作信息的状态文件.如果你对一个MySQl安装执行管理任务

更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to

服务器上的mysql默认数据目录为/var/lib/mysql/,同时服务器的/空间不是很大,而近期又有大量的日志需要导入进行分析,时常搞得/的空间捉襟见肘,晚上一狠心就想把mysql的数据目录转移到另外一块硬盘/data中. 于是关闭mysql服务: service mysqld stop 转移mysql数据目录 mv /var/lib/mysql/ /data/ 编辑my.cnf vi /etc/my.cnf 修改其中的datadir和socket到新的路径 [mysqld] datadir

如何修改MySQL日志文件位置?

MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考. 今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不了. 后来发现MySQL日志位是指定的: [root@localhost etc]# ps auxgrep mysqld   root     11830 0.5 0.0   4524 1204 pts/0    S    03:03   0:00 /bin/

MySQL数据目录的结构

mysql|数据|数据目录     MySQL数据目录中包含由服务器管理的所有数据库和表.它们被组织成一个树状结构,该结构是通过UNIX 或Windows 文件系统的层次结构用简单的方式实现的:    每个数据库对应该数据目录下的一个目录.    数据库中的表对应数据库目录中的文件.    数据目录还包含几个由服务器生成的状态文件,如日志文件.这些文件提供了关于服务器运作的重要信息,对管理员是有用的,尤其是当问题出现且试图确定问题的原因时特别有用.例如,如果某个特定的檠倩盗耸菘猓梢酝ü

如何修改mysql数据文件位置

mysql|数据 原来可以这么简单.FreeBsd5.2 上的mysql安装的时候数据库文件是放在/var/db/mysql下的.可是/var用了95%了.要转一个大数据库过去.空间不够了,所以就想到把mysql的数据库文件换个位置.呵.原来一个ln -s 就可以了.哈.#dsa /usr/local/libexec/mysqld stop#dsa mkdir /disk2/db#dsa mv /var/db/mysql /disk2/db#dsa ln -s /disk2/db/mysql /

CentOS Linux更改MySQL数据库目录位置

由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录.下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作: 1.首先我们需要关闭MySQL,命令如下:    service mysqld stop 2.然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录    cd /var/lib    ls    运行这个命令之后就会看到mysql

CentOS更改MySQL存储目录位置实例教程

mysql默认的数据文件存储目录为/var/lib/mysql 假如要把目录移到/home/mysqldata下需要进行下面几步: 1.home目录下建立mysqldata目录  代码如下 复制代码 cd /home mkdir mysqldata 2.停止mysql进程  代码如下 复制代码 mysql -u root -p shutdown 3.把/var/lib/mysql整个目录移到/home/mysqldata  代码如下 复制代码 mv /var/lib/mysql /home/my