目前的站点使用了阿里云,数据盘和系统盘分开,为了方便以后管理,参考国外的教程将数据库目录由系统盘迁移到了数据盘,过程非常简单,不过与国内一些网站上面的内容不一样:
第一步 移动MySQL数据库目录
查看当前的目录
$mysql -u root -p
以ROOT目录登录Mysql,查看当前数据库目录:
mysql> select @@datadir;
输出
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)
关闭mysql进程
$sudo service mysql stop
复制mysql数据库文件目录及权限(使用rsync)
$sudo rsync -av /var/lib/mysql /mnt
更改默认的mysql目录名
$sudo mv /var/lib/mysql /var/lib/mysql.bak
第二步 修改MySQL配置文件
$sudo vi /etc/mysql/my.cnf
修改“datadir=”这行的内容
保存退出
第三步 修改AppArmor控制规则
$sudo vi /etc/apparmor.d/tunables/alias
在文件下方,添加或者修改一行:
alias /var/lib/mysql/ -> /mnt/mysql/,
保存退出
重启aparmor
$sudo service apparmor restart
第四步 重启mysql
重启前,需要重建一个默认的空目录,否则mysql会输入错误到记录文件中
sudo mkdir /var/lib/mysql/mysql -p
重启mysql
sudo service mysql start
重新进入mysql,使用select @@datadir;查看生效的配置,输出
+-----------------+
| @@datadir |
+-----------------+
| /mnt/mysql/ |
+-----------------+
1 row in set (0.00 sec)
配置完成
如果没有问题,就可以删除原来的数据目录了