Answers:
当然可以!您必须授予root权限。阅读ln手册页。
MySQL将数据库数据存储在单独的目录中/var/lib/mysql
。我认为,首先,您必须创建一个目录,您要在其中放置所选数据库的文件。授予root权限,停止MySQL守护进程:
# /etc/init.d/mysql stop
将数据复制到新文件夹:
# cp /var/lib/mysql/DATABASENAME /path/to/new/database/dir
从MySQL数据文件中删除旧目录:(警告!务必先进行SQL转储!!!)
# rm -R /var/lib/mysql/DATABASENAME
将符号链接返回到MySQL数据目录:(注意!请先阅读ln的手册页!!!)
# ln -s /full/path/to/new/database/dir /var/lib/mysql/DATABASENAME
之后,您就可以开始启动MySQL了:
# /etc/init.d/mysql start
警告!如果您的新目录不能被MySQL读写,那将是行不通的!例如,常见问题:将新数据目录放置到主文件夹中,您的主文件夹被他人保护读取(例如:drwxrwx ---您是yourdir)。
问,如果您想了解有关该方法的其他信息!
/etc/apparmor.d/*mysqld
以包括新目录。然后sudo service apparmor reload
在重新启动MySQL之前。
/etc/apparmor.d/local
(在我的安装中已经有一个usr.sbin.mysqld),/full/path/to/new/database/dir/** rwk,
为我添加了一个...
请记住,如果您使用的是Ubuntu,则还需要在AppArmour配置文件/etc/apparmor.d/usr.sbin.mysqld中添加一个条目,否则即使更改文件和文件夹,也会不断出现写入权限错误权限。