|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。mysql|数据|数据目次 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文件体系有良多的余暇空间:- %df /usr /varFilesystem 1k-blocks Used Avail Capacity Mounted on/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/varFilesystem 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/dir3.3 重定位数据库
数据库能经由过程符号毗连的办法移走。要重定位一个数据库,封闭办事器并移走数据库目次并删除本来的数据库目次,用指向新地位的符号毗连取代它,然后重启办事器。
下例显示你若何将一个数据库bigdb移到一个分歧的中央:- %mysqladmin -u root -p shutdownEnter password: ******%cd DATADIR%tar cf - bigdb | (cd /var/db; tar xf -)%mv bigdb bigdb.origln -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等)。你可以经由过程明白指定扩大名来掩盖按次名,这时候办事器将只利用指定的名字。
用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。 |
|