ubuntu环境下更改mysql的默认数据库目录

Posted by

目前的站点使用了阿里云,数据盘和系统盘分开,为了方便以后管理,参考国外的教程将数据库目录由系统盘迁移到了数据盘,过程非常简单,不过与国内一些网站上面的内容不一样:

第一步 移动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)

配置完成
如果没有问题,就可以删除原来的数据目录了

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注