有没有办法为 MySQL 数据库指定默认表空间?我希望将大多数数据库放在磁盘上,但有一个数据库我想放在 SSD 上。
我知道我可以使用“在表空间上创建表...”来做到这一点,但我希望我可以告诉 MySQL“数据库 X 的所有内容都在这里...”特别是因为我正在从转储中加载这个数据库,并且转储文件太大而无法编辑。
答案1
我猜这是在 Linux 上。在这种情况下:为什么不直接将 SSD 分区挂载到将放置数据库的 mysql 目录中?
例如:
mount /path/to/SSDpartition /var/lib/mysql/databasename
这样,MySQL 就不必关心所有的分区和表空间内容,而是由底层文件系统挂载来处理这些问题。
如果您要使用的 SSD 分区是 /dev/sdc1 且尚未挂载,您可以使用:
mount /dev/sdc1 /var/lib/mysql/databasename
如果它已经安装到例如 /SSD 并且你只想使用目录 /SSD/mysql 作为数据库,那么你可以使用
mount -o bind /dev/SSD/mysql /var/lib/mysql/databasename
另一种选择是使用符号链接:
ln -s /dev/SSD/mysql /var/lib/mysql/databasename