缺省数据库的位置编译在服务器中。如果您是在一个源程序分发包中安装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。您可以将其解释成为您自己的机器中的数据目录的位置。