Mysql 如何在InnoDB表的挂载分区上更改数据目录?
我用的是5.5.44。我想创建一个InnoDB表,它跨装入的分区存储数据 考虑 我安装了分区/var/log/storage,如下所示:Mysql 如何在InnoDB表的挂载分区上更改数据目录?,mysql,linux,innodb,myisam,Mysql,Linux,Innodb,Myisam,我用的是5.5.44。我想创建一个InnoDB表,它跨装入的分区存储数据 考虑 我安装了分区/var/log/storage,如下所示: /dev/sda2 6.5G 3.6G 2.6G 59% / /dev/sda1 395M 32M 338M 9% /boot /dev/sda6 5.3G 22M 5.0G 1% /var/log/storage 要创建表,我使用以下查询: create table InnoDB_Test(a
/dev/sda2 6.5G 3.6G 2.6G 59% /
/dev/sda1 395M 32M 338M 9% /boot
/dev/sda6 5.3G 22M 5.0G 1% /var/log/storage
要创建表,我使用以下查询:
create table InnoDB_Test(a INT) DATA DIRECTORY='/var/log/storage/MySQL' INDEX DIRECTORY='/var/log/storage/MySQL' engine=InnoDB;
但它将数据存储在/var/lib/mysql中,而不是/var/log/storage/mysql
如果我尝试使用以下查询使用MyISAM,结果与预期的一样:
create table MyISAM_Test(a INT) DATA DIRECTORY='/var/log/storage/MySQL' INDEX DIRECTORY='/var/log/storage/MySQL' engine=MyISAM;
如何在InnoDB中将数据目录更改为挂载分区?
为什么数据分区在MyISAM中工作&而不是在InnoDB中
提前感谢您。我想这样做(用于分区),但mysql文档说“不”
以下是本页的相关部分:
19.1 MySQL分区概述
使用InnoDB存储引擎为表定义分区时,数据目录和索引目录选项无效
因此,如果您的存储引擎使用MyISAM,它将起作用
你的选择是:
# my.cnf
[mysqld]
innodb_file_per_table=1
一旦您重建了db/表,您会发现为您的表空间创建了一个目录(例如/var/lib/mysql/mydb),每个表都有单独的文件
然后可以将表空间目录和文件复制到sda6,并将/dev/sda6装载到/var/lib/mysql/mydb
显然,mysql server 5.6不受此限制。请帮助我,我找不到解决方案。。