mysql数据库的目录_了解MySQl数据库目录

数据库目录是MySQL数据库服务器存放数据文件的地方,不仅包括有关表的文件,还包括数据文件和MySQL的服务器选项文件。不同的分发,数据库目录的缺省位置是不同的。

数据目录的位置

缺省的数据库位置

缺省数据库的位置编译在服务器中。

◆如果您是在一个源程序分发包中安装 MySQL,典型的缺省位置可能是 /usr/local/var;

◆如果在二进制分发包中安装 MySQL,则为 /usr/local/mysql/ data;

◆在 RPM 文件中安装,为 /var/lib/mysql。

◆对于windwos平台上的分发,其位置时BASEDIRdata

数据目录的位置可以在启动服务器时通过--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: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 删除代表该表的三个文件。

尽管可以通过删除数据库目录中的对应某个表的三个文件来删除该表,但不能手工创建或更改表。例如,如果 my_db 是当前的数据库,DROP TABLE my_tbl 大致等价于下列命令:

来自于 SHOW TABLES my_db 的输出结果正是 my_db 数据库目录中 .frm 文件基名的一个列表。某些数据库系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改docker的默认存储位置及镜像存储位置

2019独角兽企业重金招聘Python工程师标准>>> 方法一、软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root Dir" 解决这个问题,最直接的方法当然…

微信小程序第三方服务公司有哪些

虽然微信小程序还没有正式推出,但围绕着微信小程序第三方服务公司之间的战争早已经开始。他们在小程序生成工具(一键生成小程序,无需开发)、微信小程序开发工具、小程序数据统计等领域展开激烈竞争,我们一起来看看微信…

python maketrans_Python maketrans()方法 - Python 教程 - 自强学堂

Python maketrans()方法描述Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。注:两个字符串的长度…

Blazor University (49)依赖注入 —— 比较依赖范围

原文链接:https://blazor-university.com/dependency-injection/dependency-lifetimes-and-scopes/comparing-dependency-scopes/比较依赖范围源代码[1]在本节中,我们将创建一个 Blazor 应用程序来演示各种依赖注入作用域的不同生命周期。为此&#xff0…

CSS选择器的权重与优先规

我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值。 4个等级的定义如下: 第一等:代表内联样式,如: st…

设计模式概论

此文转载于 http://blog.csdn.net/hguisu/article/details/74968191. 设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性…

只需要2个工具,百度云盘大文件就能用迅雷和IDM下载

不会代码,不懂脚本,没关系 ,能找到一座通往它们的桥梁,照样能到达彼岸。 这里以360极速浏览器为例。 在浏览器地址框输入以下地址直接到达浏览器安装扩展插件的地方(偷个懒,复制网址吧)&#xf…

rsync服务器的配置

一、rsync 简介Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。 Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法…

用ajax连接mysql_页面用ajax实现简单的连接数据库

(1) 写发送代码var myXmlHttpRequest "";myXmlHttpRequest getXmlHttpRequest();if (myXmlHttpRequest) { //xmlHttpRequest创建成功了,才能发送请求//地址一定要写正确var url "../zhuCe/zhuCeYanZheng.aspx?username" $(Text1).value;m…

Vue学习笔记入门篇——数据及DOM

本文为转载,原文:Vue学习笔记入门篇——数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象。Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化。对象必须是纯粹的对象(含有零个或多个…

Thinkphp 3.2中控制页面不缓存

最近开发WAP网站时,最讨厌的就是back键,会造成些麻烦事。不过,问题总有办法解决。 有些页面,点击back键回退会加载缓存,这不是想要的,所以希望能够控制该页面不缓存,每次请求都需要从服务器获取…

能识别nvme的pe启动_PE系统纯净(可以识别nvme固态)

此前我一直用的微PE系统,纯净没有广告,但是我却发现不能识别nvme固态,于是就寻找可以识别nvme固态的PE,虽然知道老毛桃可以用,但是我并不想用。然后网上查到可以自动向PE系统中添加nvme的驱动,从而就可以识…

H3CNE认证

H3CNE(H3C Certified Network Engineer,H3C认证网络工程师)H3CNE认证主要定位于中小型网络的规划、设计、配置与维护。通过H3CNE认证,将证明您对数据通信网络有全面深入的了解,掌握面向中小型企业的网络通用技术&#…

BZOJ 3144 [Hnoi2013]切糕

3144: [Hnoi2013]切糕 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R)。 100%的数据…

java java 大端_Java 大小端转换

package nlp.nlp;/*** 小端数据,Byte转换**/public class ByteConvert {public static void main(String[] args) {ByteConvert c new ByteConvert();c.Int2Bytes_LE(126);}public static final int UNICODE_LEN 2;/*** int转换为小端byte[](高位放在高地址中)* p…

《ASP.NET Core 6框架揭秘》实例演示[18]:HttpClient处理管道

在《《ASP.NET Core 6框架揭秘》实例演示[17]:利用IHttpClientFactory工厂来创建HttpClient》之后,我们将关注点放到HttpClient对象上。我们知道ASP.NET的核心就是由中间件组成的请求处理管道,HttpClient也采用了类似的设计。HttpClient管道由…

腾讯云副总裁答治茜:移动互联网破局要借助“三张网”

5月24日,2018腾讯云未来峰会在广州召开。在互联网专场上,腾讯云副总裁答治茜就泛互联网行业云化的主题发表演讲。在演讲中答治茜表示,过去移动互联网的高速增长到现在已经遇到了一个天花板,需要借助马化腾提到的“人联网、物联网、…

雅诗兰黛天猫超级品牌日:未央唇膏、红装小棕瓶“当红不让”

随着年末圣诞季的临近,各大美妆品牌陆续推出了圣诞套装,红红火火的超豪华套装,算是对用户最实在的回馈。高端美妆品牌的“领头羊”雅诗兰黛,当然也“当红不让”,趁着圣诞季,与天猫超级品牌日联手打造了一场…

JAVA常见算法题(三十一)---冒泡排序

package com.jege.spring.boot.hello.world;/*** java算法之冒泡排序<br>* 将数组按照从大到小的顺序排列<br>* * * author Administrator**/ public class BubbleSort{public static void main(String[] args){int score[] {67, 69, 75, 87, 89, 90, 99, 100};fo…

java 1.7的新特性_[Java]  JDK 1.7版本的 新特性

在网上看到一些jdk1.7的新特性&#xff0c;现将我觉得比较实用的记录于下&#xff1a;(1)switch中可以使用字串了String s "test";switch (s) {case "test" :System.out.println("test");case "test1" :System.out.println("tes…