MySQL重定位数据目录的方法

本文实例讲述了MySQL重定位数据目录的实现方法。分享给大家供大家参考。具体方法如下:

MySQL允许重定位数据目录或其中的成员,这里就来介绍重定位MySQL数据目录的方法,对此方面感兴趣的朋友不妨看一下。

重定位MySQL数据目录

MySQL数据目录结构是缺省配置,所有数据库和状态文件均包含其中,然而,你有某些自由决定数据目录内容的位置,这里讨论为什么你可能移走部分数据目录(或甚至目录本身)、你能移走什么以及你如何做这些改变。

MySQL允许你重定位数据目录或其中的成员,由几个原因你为什么要这样做:

你能将MySQL数据目录放在你缺省所在的文件系统更大容量的文件系统上。
如果你的MySQL数据目录在一个繁忙的硬盘上,你可能把它放在不太忙的磁盘上以均衡磁盘活动。你可以把数据库和日志文件放在分开的磁盘上或跨磁盘分布。
你可能想运行多个服务器,各自有自己的数据目录,这是解决每个进程文件描述符限制问题的一种方法,特别是你不能重新配置内核以允许更高的限制。
有些系统在例如/var/run中保存服务器的部分文件,你可能想把MySQL的PID文件也放在那儿,为了系统操作的一致性。

MySQL数据目录重定位方法

有两种方法重定位MySQL数据目录的内容:

你可以在服务器启动时指定选项,在命令行或在一个选项文件的[mysqld]中。
你可以移走要重定位的东西,然后在原位置做一个指向新位置的符号连接。
两种方法都不能解决你能重定位的一切,下表总结了什么能重定位和用哪种方法重定位。如果你使用选项文件,有可能在全局选项文件/etc/my.cnf(Windows上的c:\my.cnf)指定选项。当前的Windows版本也寻找系统目录(c:\Windows或c:\NT)。

表重定位方法

重定位方法 适用的重定位方法
整个数据目录 启动选项或符号连接
单个数据库目录 符号连接
单个数据库表 符号连接
PID文件 启动选项
一般日志 启动选项
更新日志 启动选项

你也可以使用缺省数据目录中的选项文件my.cnf,但不推荐使用该文件。如果你想重定位数据目录本身,你不得不让缺省数据目录可读以便使你能在这里放置选项文件指定服务器应该在哪里找到“真正”的数据目录!这很混乱。如果你想使用一个选项文件指定服务器选项,最好使用/etc/my.cnf。

希望本文所述对大家的MySQL数据库程序设计有所帮助。

相关推荐