MySQl数据库目录有哪些
本篇文章为大家展示了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:mysqlin>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
在平台上的搜索非常简单,本节就不给出例子了。
在本章的这些例子中,笔者将 MySQL 数据目录的位置表示为 DATADIR。您可以将其解释成为您自己的机器中的数据目录的位置。
的表示法
由 MySQL 管理的每个数据库都有自己的数据库目录,它们是数据目录的子目录,与所表示的数据库有相同的名称。例如,数据库 my_db 对应于数据库目录 DATADIR/my_db。
这个表示法使得几个数据库级的语句的实现是非常容易的。CREATE DATABASE db_name 使用只允许对 MySQL 服务器用户(服务器运行的UNIX 用户)进行访问的所有权和方式,并在数据目录中创建一个空目录 db_name。这等价于以服务器主机中的服务器用户的身份通过执行下列命令手工创建数据库:
$ mkdir DATADIR/db_name 创建数据库目录
$ chmod 700 DATADIR/db_name 使它仅对 MySQL 服务器用户可访问
通过空目录表示新数据库的方法与其他数据库系统完全不同,那些数据库系统甚至要为“空”数据库创建许多控制文件或系统文件。
DROP DATABASE 语句也很容易实现。DROP DATABASE db_name 删除数据目录中的 db_name 目录以及其中的所有表文件。这个语句类似于下列命令:
$rm -rf DATADIR/db_name
其区别是,服务器只删除带有表的扩展名的文件。如果已经在该数据库目录中创建了其他的文件,服务器将使它们保持完整,并且不删除该目录本身。
SHOW DATABASE 只不过是对应位于数据目录中的子目录名称的一个列表。有些数据库系统需要保留一个列出所有需要维护的数据库的主表,但是,在 MySQL 中没有这样的结构。由于数据目录结构的简单性,数据库的列表是隐含在该数据目录的内容中的,像主表这样的表可能会引起不必要的开销。
数据库表的表示法
数据库中的每个表在数据库目录中都作为三个文件存在:一个格式(描述)文件、一个数据文件和一个索引文件。每个文件的基名是该表名,扩展名指明该文件的类型。扩展名如表5-1所示。数据和索引文件的扩展名指明该表是否使用较老的 ISAM 索引或较新的 MyISAM 索引。
当发布定义一个表结构的 CREATE TABLE tbl_name 语句时,服务器创建 tbl_name.frm 文件,它包含该结构的内部编码。该语句还创建空的数据文件和索引文件,这些文件的初始信息表明没有记录和索引(如果 CREATE TABLE 语句包含索引说明,则该索引文件将反映这些索引)。描述表的文件的所有权和方式被设置为只允许对 MySQL 服务器用户的访问。
当发布 ALTER TABLE 语句时,服务器对 tbl_name.frm 重新编码并修改数据文件和索引文件的内容以反映由该语句表明的结构变化。对于 CREATE 和 DROP INDEX 也是如此,因为服务器认为它们等价于 ALTER TABLE 语句。DROP TABLE 删除代表该表的三个文件。
上述内容就是MySQl数据库目录有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
标题名称:MySQl数据库目录有哪些
网址分享:http://azwzsj.com/article/jcephg.html