MySQL数据目录结构(2)MySQL数据目录结构(2)
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文件系统有很多的空闲空间:
阅读(645) | 评论(0) | 转发(0) |