|
|
 |
 |
|
|
 |
|
MySQL数据目录结构
|
|
|
|
编辑:华夏媒体 作者:未知 来源:网络 时间:2006-07-29 总浏览量:1230 |
|
文字大小:[ 大 中 小 ]
文字颜色: 双击滚屏/单击停止 |
|
[上一页] [1] [2] [3] [4] [5] [6] [下一页]
|
/dev/wd0s3e 396895 292126 73018 80% /usr /dev/wd0s3f 1189359 1111924 162287 15% /var 重定位的数据目录在/usr文件系统上有多少空闲空间呢?要知道它,使用du -s找出该目录使用多少空间。 %cd /usr/local/var %du -s . 133426 这大约是130MB,真实这样吗?在数据目录下试一下df: %df /usr/local/var Filesystem 1k-blocks Used Avail Capacity Mounted on /dev/wd0s3f 1189359 1111924 162287 15% /var 这就奇怪了。如果我们为包含/usr/local/var的文件系统申请空闲空间,为什么却报告var上的空间呢?这里ls -l提供了答案: %ls -l /usr/local .... lrwxrwxrwx 1 root wheel 10 Dec 11 23:33 var -> /var/mysql .... 输出显示/usr/local/var是对/var/mysql的符号连接,换句话说,数据目录已经被重定位于/var文件系统,并用一个指向那里的符号连接代替。通过将数据目录移到/var竟然释放了/usr上那么多空间!
3.2 重定位数据目录 要重定位数据目录,关闭服务器并把数据目录移到新位置上,然后你应该删除员数据目录并用指向新位置的符号连接代替它,或用明确指出新位置的选项重启服务器。下表列出指定位置的命令行和选项。 表 数据目录重定位语法 选项源语法 命令行--data-dir=/path/to/dir 选项文件[mysqld] datadir=/path/to/dir
3.3 重定位数据库 数据库能通过符号连接的方法移走。要重定位一个数据库,关闭服务器并移走数据库目录并删除原来的数据库目录,用指向新位置的符号连接代替它,然后重启服务器。 下例显示你如何将一个数据库bigdb移到一个不同的地方: %mysqladmin -u root -p shutdown Enter password: ****** %cd DATADIR %tar cf - bigdb | (cd /var/db; tar xf -) %mv bigdb bigdb.orig ln -s /var/db/bigdb . %safe_mysqld 你应该以该数据目录的拥有者执行这些命令。为了安全起见,原数据库目录改名为bigdb.orig。在你验证了服务器工作正常后,你可以删除原数据目录。 %rm -rf bigdb.orig
3.4 重定位数据库表 重定位一个单独的表不是个好主意。你可以通过把表文件移到一个不同地方,并在数据目录中创建指向这些文件的符号连接进行。然而,如果你发出一条ALTER TABLE或OPTIMIZE TABLE语句,将不进行你的修改。 每个语句通过在数据库目录中创建一个实现你修改或优化的临时表,然后删除原来的表并将临时表更名为原来的表来完成,结果是你的符号连接被删除,而且新表又回到数据库目录,这是你移走前的原表文件位置。更糟糕的是,你还没有意识到它们在那儿,继续占据着空间,而且符号连接已经被破坏,这样以后当你意识到发生的事情时,如果你忘记你把它们移到什么地方,你可能没有好办法追踪文件了。 因为很难保证具有表访问权的人不修改或优化表,所以最好把表留在数据库目录中。
3.5 重定位状态文件 你可以重中定位PID文件、一般日志和更新日志。出错日志由safe_mysqld用启动选项创建,而不能被重定位(除非你编辑safe_mysqld)。 要在一个不同位置写入状态文件,关闭服务器,然后由指定新状态文件位置的适当选项启动它。下表列出每一个文件的命令行和选项文件的语法。 表 状态文件重定位语法 选项源语法 命令行--pid-file=pidfile --log=lodfile --log-update=updatefile 选项文件[mysqld] pid-file=pidfile log=lodfile log-update=updatefile
如果你用绝对路径名指定状态文件,用该路径创建文件,否则文件在数据目录下创建。如,如果你指定--pid-file=/var/run/mysqld.pid,PID文件是/var/run/mysqld.pid。如果你指定-pid-file=mysqld.pid,PID文件是DATADIR/mysqld.pid。 如果你指定无扩展名的更新日志文件,MySQL在它每次打开更新日志时产生顺序名。这些名字用一个扩展名.nnn,这里.nnn是还没被现有更新日志使用的第一个数字(如update.000,update.001等)。你可以通过明确指定扩展名来覆盖顺序名,这时服务器将只使用指定的名字。
|
|
[上一页] [1] [2] [3] [4] [5] [6] [下一页]
|
|
|
打印 收藏 关闭 至顶部 |
|
 |
|