ubuntu系统下更改mysql数据目录的方法

系统环境:Ubuntu 12.04(其他版本其实也类似),使用apt-get install mysql-server。

默认情况下,mysql的数据目录是/var/lib/mysql,因为如果你的数据库以后会越来越大,那么你就得考虑用一个空间足够大的分区来存放数据库文件,所以还是选择把它修改到其他位置,比如/usr/data/mysql_data。这个目录可以直接挂载一个大硬盘。

具体修改方式如下(为了方便起见,你可以先用su命令将系统当前用户转到root,否则以下命令可能都需要加上sudo 前缀):

1、 /etc/init.d/mysql stop

2、 chown mysql:mysql /usr/data/mysql_data

3、vim /etc/mysql/my.cnf

找到datadir=/var/lib/mysql

将它改为datadir=/usr/data/mysql_data

4、cp -a /var/lib/mysql/* /usr/data/mysql_data

5、vim /etc/apparmor.d/usr.sbin.mysqld
 我们会看到此文件中有2行:

/var/lib/mysql/ r,
 /var/lib/mysql/** rwk,
 以上是针对默认数据目录的权限配置,所以据此我们增加两行,指向新目录,设置同样的权限:
 /newdir/mysql/ r,
 /newdir/mysql/** rwk,

6、/etc/init.d/apparmor restart

7、 /etc/init.d/mysql start

OK,到此就已经成功转移了mysql数据目录。



为了测试,我们登入mysql,然后创建一个数据库newdb,再看一下/usr/data/mysql_data目录,发现多了一个newdb目录,说明数据目录已经成功转移到新目录下了。

结果连进mysql,创建数据库报错,问题接踵而来

突然就不能创建库和表了,错误信息如下:

mysql> create database newdb1;

ERROR 1006 (HY000): Can't create database 'newdb1' (errno: 13)

放到google搜索和查看文档发现原来权限不足:

查看原先的mysql默认目录/var/lib/mysql 

drwxr-xr-x  8 mysql mysql      4096 Nov 20 09:44 mysql/

再看我们刚移入的新目录/usr/data/mysql_data

drwxr-xr-x  8 root root  4096 Nov 22 09:44 mysql_data

仔细一对比,要给新目录赋予权限:chown -R mysql:mysql mysql_data

再查看新目录

drwxr-xr-x  8 mysql mysql  4096 Nov 22 09:44 mysql_data

重新登录mysql进去可以创建,并且创建的newdb在新目录下!


参考:http://www.douban.com/note/170186265/

http://yoozhu.com/?p=1437

http://xplazy.iteye.com/blog/657456

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值