作者:湛蓝天空jk | 来源:互联网 | 2017-05-12 15:28
数据库目录是MySQL数据库服务器存放数据文件的地方,不仅包括有关表的文件,还包括数据文件和MySQL的服务器选项文件。不同的分发,数据库目录的缺省位置是不同的。数据目录的位置缺省的数据库位置缺省数据库的位置编译在服务器中。◆如果您是在一个源程
数据库目录是MySQL数据库服务器存放数据文件的地方,不仅包括有关表的文件,还包括数据文件和MySQL的服务器选项文件。不同的分发,数据库目录的缺省位置是不同的。 数据目录的位置 缺省的数据库位置 缺省数据库的位置编译在服务器中。 ◆如果您是在一个源程
数据库目录是MySQL数据库服务器存放数据文件的地方,不仅包括有关表的文件,还包括数据文件和MySQL的服务器选项文件。不同的分发,数据库目录的缺省位置是不同的。
数据目录的位置
缺省的数据库位置
缺省数据库的位置编译在服务器中。
◆如果您是在一个源程序分发包中安装 MySQL,典型的缺省位置可能是 /usr/local/var;
◆如果在二进制分发包中安装 MySQL,则为 /usr/local/mysql/ data;
◆在 RPM 文件中安装,为 /var/lib/mysql。
◆对于windwos平台上的分发,其位置时BASEDIR\data
数据目录的位置可以在启动服务器时通过--datadir = / path / to / dir 明确地指定。如果您想将数据目录放置在其他地方而非缺省的位置,则这个选项是有用的。
了解数据库目录的位置
作为一名 MySQL 管理员,您应该知道数据目录在哪里。如果运行多个服务器,那么您应该掌握所有数据目录的位置。但是,如果不知道目录的位置(或许您正在代替前一位管理员,而他留下的记录很糟糕),有几种方法可以用来查找它:
1、可使用 mysqladmin 变量直接从服务器中得到数据目录路径名。在 UNIX 中,输出结果类似于如下所示:
$mysqladmin variables
+-------------------------+---------------------------
| Variable_name           | Value                    
+-------------------------+---------------------------
| ansi_mode               | OFF                      
| back_log                | 50                       
| basedir                 | /var/local         
| connect_timeout         | 5                        
| concurrent_insert       | ON                       
| datadir                 | /usr/local/var 
该输出结果指明了服务器主机中数据目录的位置 /usr/local/var。
在 Windows 中,输出结果类似于如下所示:
c:\mysql\bin>mysqladmin variables
+-------------------------+---------------------------
| Variable_name           | Value                    
+-------------------------+---------------------------
| ansi_mode               | OFF                      
| back_log                | 50                       
| basedir                 | c:\mysql\         
| connect_timeout         | 5                        
| concurrent_insert       | ON          
如果正在运行多个服务器,它们将监听不同的 TCP/IP 端口号和套接字。可以通过提供合适的--port 或 --socket 选项连接到每个服务器监听的端口和套接字上:
$mysqladmin –port=port=port_num variables
$mysqladmin –socket=/path/to/socket variables
|
mysqladmin 命令可在您连接服务器的任何一台主机上运行。如果需要连接到远程主机上的服务器,则使用 --host = host_name 选项:
$mysqladmin –host=host_name varibles
2、在Unix平台上,可使用 ps 来查看任何当前执行 mysql 进程的命令行。试一试下列的命令(根据您的系统所支持的 ps 版本)并查找显示在输出结果中的这些命令的 --datadir:
$ps au | grep mysqld
如果系统运行多个服务器(因为一次发现了多个数据目录位置),则 ps 命令将会特别有用。它的缺点是:ps 必须运行在服务器的主机上,并且除非 --datadir 选项在 mysqld 命令行中明确指定,否则将产生无用的信息。
3、如果 MySQL 从源程序分发包中安装,可以检查其配置信息以确定数据目录的位置。例如,在最高级的 Makefile 中该位置是可用的。但是,要小心:位置是 Makefile 中的变量localstatedir 的值,而不是 datadir 的值。同样,如果分发包定位在 NFS 装配文件系统中,并且是用于为几个主机建立 MySQL的,则配置信息反映最近建立分发包的主机。它可能不显示您感兴趣的主机的数据目录。
4、如果前面的任何方法都不成功,可使用 find 搜索数据库文件。下列命令将搜索 .frm(描述)文件,它是 MySQL 安装程序的组成部分:
$find / -name  “*.frm” –print
在windows平台上的搜索非常简单,本节就不给出例子了。
在本章的这些例子中,笔者将 MySQL 数据目录的位置表示为 DATADIR。您可以将其解释成为您自己的机器中的数据目录的位置。