|
|
 |
 |
|
|
 |
|
MySQL数据目录结构
|
|
|
|
编辑:华夏媒体 作者:未知 来源:网络 时间:2006-07-29 总浏览量:1234 |
|
文字大小:[ 大 中 小 ]
文字颜色: 双击滚屏/单击停止 |
|
[上一页] [1] [2] [3] [4] [5] [6] [下一页]
|
990509 7:34:34 492 Query INSERT INTO my_tbl values (1) 990509 7:34:38 492 Query DROP TABLE my_tbl 990509 7:34:40 492 Quit 一般日志包含日期和时间、服务器进程ID、事件类型和事件信息栏目。 同一个会话出现在更新日志中看上去像这样: use test; CREATE TABLE my_tbl (val int); INSERT INTO my_tbl VALUES(1); DROP TABLE my_tbl; 对更新日志,用--log-long-format选项获得一个扩展形式的日志,扩展日志提供有关谁何时发出每一条查询,这使用更多的磁盘空间,但如果你想知道谁在做什么,而不用将更新日志对照一般日志的内容找到连接事件。 对上面的会话,扩展更新日志产生这样的信息: # Time: 990507 7:32:42 # User@Host: paul [paul] @ localhost [] use test; CREATE TABLE my_tbl (val int); # User@Host: paul [paul] @ localhost [] INSERT INTO my_tbl VALUES(1); # Time: 990507 7:32:43 # User@Host: paul [paul] @ localhost [] DROP TABLE my_tbl; 保证你的日志文件安全并且不让任意用户读取是个好主意。一般日志和更新日志都能包含诸如口令等的敏感信息,因为它们包含查询文本。如: 990509 7:23:31 4 Query UPDATE user SET Password=PASSWORD("secret") WHERE user="root" 对于检查和设置数据目录的权限,请见《MySQL安全性指南》。使数据目录安性的指令包含下列命令: % chmod 700 DATADIR 以拥有数据目录的Unix用户运行此命令。确保服务器也以此用户运行,否则该命令不仅将其它人拒之门外,它也阻止服务器访问你的数据库。 状态文件出现在数据目录的顶级目录,就象数据库目录,所以你可能担心这些文件名是否与数据库名冲突或出错(如在服务器执行SHOW DATABASES语句时)。答案是不。状态和日志文件信息存储在文件中,而数据库是目录,所以可执行程序能用一个简单的stat()调用区分它们。如果你看一下数据目录,你可以区分状态文件和数据库目录,用ls -l并检查模式的第一个字符是一个"_"还是一个"d"。 你也可以简单地看一下名字,所有状态文件名包含一个点("."),而数据库目录没有(.在数据库名中是无效字符)。
3 重定位数据库目录 前面讨论的数据目录结构是缺省配置,所有数据库和状态文件均包含其中,然而,你有某些自由决定数据目录内容的位置,本节讨论为什么你可能移走部分数据目录(或甚至目录本身)、你能移走什么以及你如何做这些改变。 MySQL允许你重定位数据目录或其中的成员,由几个原因你为什么要这样做: 你能将数据目录放在你缺省所在的文件系统更大容量的文件系统上。 如果你的数据目录在一个繁忙的硬盘上,你可能把它放在不太忙的磁盘上以均衡磁盘活动。你可以把数据库和日志文件放在分开的磁盘上或跨磁盘分布。 你可能想运行多个服务器,各自有自己的数据目录,这是解决每个进程文件描述符限制问题的一种方法,特别是你不能重新配置内核以允许更高的限制。 有些系统在例如/var/run中保存服务器的部分文件,你可能想把MySQL的PID文件也放在那儿,为了系统操作的一致性。
3.1 重定位方法 有两种方法重定位数据目录的内容: 你可以在服务器启动时指定选项,在命令行或在一个选项文件的[mysqld]中。 你可以移走要重定位的东西,然后在原位置做一个指向新位置的符号连接。 两种方法都不能解决你能重定位的一切,下表总结了什么能重定位和用哪种方法重定位。如果你使用选项文件,有可能在全局选项文件/etc/my.cnf(Windows上的c:\my.cnf)指定选项。当前的Windows版本也寻找系统目录(c:\Windows或c:\NT)。 表 重定位方法 重定位方法适用的重定位方法 整个数据目录启动选项或符号连接 单个数据库目录符号连接 单个数据库表符号连接 PID文件启动选项 一般日志启动选项 更新日志启动选项
你也可以使用缺省数据目录中的选项文件my.cnf,但不推荐使用该文件。如果你想重定位数据目录本身,你不得不让缺省数据目录可读以便使你能在这里放置选项文件指定服务器应该在哪里找到“真正”的数据目录!这很混乱。如果你想使用一个选项文件指定服务器选项,最好使用/etc/my.cnf。 3.1 检验重定位的效果 在试图重定位任何东西之前,检验操作达到预期效果是个好主意。借助于du、df和ls -l命令获得磁盘空间的信息,但这些依赖于你正确了解你的文件系统的布局。 下面演示一个在你检验一个属目录重定位时的设计陷阱。假定你的数据目录是/usr/local/var,而你想把它移到/var/mysql,因为df显示/var文件系统有很多的空闲空间:
%df /usr /var Filesystem 1k-blocks Used Avail Capacity Mounted on
|
|
[上一页] [1] [2] [3] [4] [5] [6] [下一页]
|
|
|
打印 收藏 关闭 至顶部 |
|
 |
|