Ubuntu修改MySQL默认数据库目录

    在CentOS修改MySQL数据库目录很简单,在my.cnf更改datadir路径后,启动即可,但在Ubuntu系统初次更改,可就上火了,因为Ubuntu有个AppArmor,是一个Linux系统安全应用程序,类似于Selinux,AppArmor默认安全策略定义个别应用程序可以访问系统资源和各自的特权,如果不设置服务的执行程序,即使你改了属主属组并0777权限,也是对服务起不到作用。网上大多数资料都说是权限问题,的确目录属性必须要改的,但不能解决问题。操作很简单,留个备忘,请看步骤!

1、停掉MySQL

# sudo /etc/init.d/mysql stop

2、修改MySQL数据库默认存放位置

# vi /etc/mysql/my.cnf

将datadir         = /var/lib/mysql

修改为datadir         = /data0/mysql

3、设置新数据库目录属主属组为mysql

# sudo chown mysql:mysql /data0/mysql

4、修改Ubuntu系统安全设置

# vi /etc/apparmor.d/usr.sbin.mysqld

将/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

修改为现在目录

/data0/mysql/ r,

/data0/mysql/** rwk,

然后重启AppArmor:sudo /etc/init.d/apparmor restart

注:如果不修改,就会报如下错:

150208 10:48:47  InnoDB: Operating system error number 13 in a file operation.

InnoDB: The error means mysqld does not have the access rights to

InnoDB: the directory.

InnoDB: File name ./ibdata1

InnoDB: File operation call: ‘create‘.

InnoDB: Cannot continue operation.

150208 10:48:47 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

5、重新初始化数据库

# sudo mysql_install_db

6、启动MySQL

# sudo /etc/init.d/mysql start

7、设置数据库ROOT登陆密码

# mysqladmin -uroot password ‘123456‘


本文出自 ““企鹅”那点事儿” 博客,请务必保留此出处http://lizhenliang.blog.51cto.com/7876557/1612778

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。