MySQL数据目录结构
2008-12-19 11:16:24 来源:WEB开发网当你在一个单个数据目录上运行多个服务器。一般倪云新一个服务器管理主机上的所有数据库,但是有可能运行多个服务器。如果这完成提供对多个独立数据目录的访问,没有相互影响的问题,但哟也能启动多个服务器并指向同一个目录。一般地,这不是一个好主意。如果你试图这样,最好是你的系统提供良好的文件锁定功能,否则服务器将不能正确协作。如果你将多个服务器同时写入日志文件,你也冒着你的日志文件称为混乱的根源的风险。
在你运行isamchk和myisamchk时。isamchk和myisamchk实用程序用于表的维护、诊错和修复,就想你想的那样,因为这些程序可以修改表内容,允许它们与服务器正在操作的同时对表操作,这样能导致表损坏。理解如何限制这种相互影响是很重要的,这样你不会损坏你的表。
2.2 数据目表示
每个MySQL服务器管理的数据库有自己的数据库表,它是数据目录下的一个子目录,其名字与它表示的数据库相同。例如数据库my_db对应于数据库目录DATADIR/my_db。
这种表示允许多个数据库级的语句在其实现中十分简单。CREATE DATABASE db_name在数据目录中创建一个db_name空目录,具有只允许MySQL服务器用户(运行服务器的Unix用户)的属主和模式,这等价于下列手工在服务器主机上创建数据库:
%mkdir DATADIR/db_name
%chmod 700 DADADIR/db_name
用一个空目录表示一个新数据库的最简单方法与其它数据库甚至为一个空数据库创建大量的控制文件或系统文件正好相反。
DROP DATABASE语句实现同样简单。DROP DATABASE db_name删除数据库中的db_name目录和所有表文件,这几乎与下列命令一样:
%rm -rf DATADIR/db_name
(差别是服务器只删除具有已知用于表的后缀名的文件。如果你在数据库目录创建了其它文件。则服务器保留它们,而且目录本身不被删除。
更多精彩
赞助商链接