很多系统正式上线后,随着数据量的不断增加,会发现数据目录下的可用空间越来越小,从而造成了安全隐患,对于这类问题,用户可以根据不同的情况采取不同的措施进行解决。
对于myisam的引擎的表,在建表的时候可以用如下选项分别指定了数据目录和索引目录存储到不同的磁盘空间,而默认会同时放到数据目录下
例如
create table t1(id int ,name varchar(10)) data directory='/var/lib/mysql/data' index directory='/var/lib/mysql/index';
使用的过程中是不是也可以随时对这些路径进行再次变更呢,答案是否定的,
alter table t1 index directory=‘/var/lib/mysql/data’ ------------------------------是不是成功的
对于上面这种情况,如果表已经创建,还可以将表的数据文件和索引文件移mv到磁盘充足的分区上,然后再原文件处创建符号链接即可。当然,mv前必须要停机或者将表锁定,以防止表的更改。
*************************************************************************
对于innodb存储引引擎的表,因为数据文件和索引文件是存放在一起的,所以无法将他们进行分离,当磁盘空间出现不足时,可以增加一个新的数据文件,这个文件放在有充足空间的磁盘上,具体实现方法是在参数innodb_data_file_path中增加此文件,路径写为新磁盘的绝对路径,例如,如果/home下空间不足,希望在home1 下新增一个可自动扩充数据的文件,那么参数就可以这么写:
innodb_data_file_path=/home/iddata1:2000M;/home1/ibdata2:2000M:autoextend
参数修改后重启数据库生效。