欢迎来到天天文库
浏览记录
ID:9490453
大小:59.00 KB
页数:8页
时间:2018-05-01
《mysql数据目录结构--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MySQL数据目录结构>> 从概念上讲,大多数关系数据库系统是相似的:它们有一系列数据库组成,每个数据库包含一系列数据库表,但每个系统有各自组织其管理的数据方式,MySQL也不例外。 缺省地,所有由MySQL服务器mysqld管理的数据存储在一个称为MySQL数据目录的地方,所有数据库都存放在哪儿,也包括提供服务器操作信息的状态文件。如果你对一个MySQl安装执行管理任务,你应该熟知数据目录的布局及用途。 本文介绍下列专题: 如何确定数据目录的位置。 服务器如何组织并提供对数据库和它管理的表的访问。 在哪里找到由服务器生成的状态文件记忆它们包含什么内容。 如何改变缺省地点或数
2、据目录或单独数据库的组织结构。 1、数据目录的位置 一个缺省数据目录被编译进了服务器,如果你从一个源代码分发安装MySQL,典型的缺省目录为/usr/local/var,如果从RPM文件安装则为/var/lib/mysql,如果从一个二进制分发安装则是/usr/local/mysql/data。 在你启动服务器,通过使用一个--datadir=/path/to/dir选项可以明确指定数据目录位置。如果你想把数据目录置于其它缺省位置外的某处,这很有用。 作为一名MySQL管理员,你应该知道你的数据目录在哪里。如果你运行多个服务器,你应该是到所有数据目录在哪里,但是如果你不知道确切的位
3、置,由多种方法找到它: 使用mysqladminvariables从你的服务器直接获得数据目录路径名。查找datadir变量的值,在Unix上,其输出类似于: %mysqladminvariables +----------------------+----------------------+
4、variable_name
5、Value
6、 +----------------------+----------------------+
7、back_log
8、5
9、
10、connect_timeout
11、5
12、
13、basedir
14、/var/local/
15、
16、datadir
17、/usr/l
18、ocal/var/
19、 .... 在ySQL是从一个源代码分发安装的,你可以检查其配置信息确定数据目录位置。例如,位置可从顶级Makefile中获得,但是注意,位置是Makefile中的localstatedir值,不是datadir,而且,如果分发位于一个NFS挂载的文件系统并用来为多个主机构建MySQL,配置信息反映了分发被最新构建的主机,这可能不能提供你感兴趣的主机的数据目录信息。 如果上述方式失败,你可以用find寻找数据库文件,下列命令寻找.frm文件,它是任何MySQL安装的一部分: %find/-name.frm-print 在下文各例中,用DATADIR表示MySQ
20、L数据目录位置。 2、数据目录结构 MySQL数据目录包含了服务器管理的所有数据目录,这些文件被组织成一个树状结构,通过利用Unix或Windoysqld管理,客户程序绝不直接操作数据。相反,服务器提供数据可访问的切入点,它是客户程序与它们想使用的数据之12下一页>>>>这篇文章来自..,。间的中介。 当服务器启动时,如果有需要,它打开日志文件,然后通过监听网络连接位数据目录呈现一个网络接口。要访问数据,客户程序建立对服务器的一个连接,然后以MySQL查询传输请求来执行希望的操作。服务器执行每一个操作并将结果发回用户。服务器是多线程的并能服务多个同时的客户连接。然而,因为修改操作一个
21、执行一个,实际效果是顺序化请求,以使两个客户决不能在同一时刻改变同一记录。 在正常的情况下,让服务器作为数据库访问的唯一仲裁者提供了避免可从同时访问数据库表的多个进程的破坏的保证。管理员应该知道有时服务器没有对数据目录的独裁控制。 当你在一个单个数据目录上运行多个服务器。一般倪云新一个服务器管理主机上的所有数据库,但是有可能运行多个服务器。如果这完成提供对多个独立数据目录的访问,没有相互影响的问题,但哟也能启动多个服务器并指向同一个目录。一般地,这不是一个好主意。如果你试图这样,最好是你的系统提供良好的文件锁定功能,否则服务器将不能正确协作。如果你将多个服务器同时写入日志文件,你也冒着
22、你的日志文件称为混乱的根源的风险。 在你运行isamchk和myisamchk时。isamchk和myisamchk实用程序用于表的维护、诊错和修复,就想你想的那样,因为这些程序可以修改表内容,允许它们与服务器正在操作的同时对表操作,这样能导致表损坏。理解如何限制这种相互影响是很重要的,这样你不会损坏你的表。 2.2数据目表示 每个MySQL服务器管理的数据库有自己的数据库表,它是数据目录下的一个子目录,其名字与它
此文档下载收益归作者所有