红联Linux门户
Linux帮助

ubuntu修改mysql 5.7数据存储目录datadir

发布时间:2017-05-09 09:37:10来源:linux网站作者:_Hebrew
环境:Ubuntu 16.04、mysql5.7
在16.04版本的MySQL数据库,默认是5.7版本的;
想要修改MySQL数据库存储的目录,需要了解mysql配置文件,以及apparmor的配置文件。
这里提一下apparnor 是控制访问权限的,而mysql依赖它,所以不单单是改完mysql配置文件的内容,同样的需要修改apparmor的相应的配置文件。
 
1.创建MySQL另外存储的目录
mkdir /database/mysql
chmod 700 /database/mysql
chowd mysql:mysq /database/mysql
 
2.将以前的数据库复制到新的存储目录 (这样避免了再次初始化,并且数据还在)
cp -av /var/lib/mysql/* /database/mysql
 
3.删除日志 (不删除会报错)
rm -rf /database/mysql/ib_logfile0
rm -rf /database/mysql/ib_logfile1
 
4.修改my.cnf
vim /etc/mysql/my.cnf
修改datadir=/var/lib/mysql 为你需要修改的目录 这里是 datadir=/database/mysql
 
5.修改apparmor的配置文件use.sbin.mysqld 
vim /etc/apparmor/usr.sbin.mysqld
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
修改为
/database/mysql/ r,
/database/mysql/** rwk,
 
6.reload apparmor的配置并重启(这里不要停止apparmor服务,因为我在测试的时候关闭以后修改配置文件后反到是不成功,直接修改后reload 然后重启)
service apparmor reload 
service apparmor restart 
 
7.重启mysql
service mysql restart
如果启动不了,查看/var/log/mysql/error.log
如果出现:InnoDB: The innodb_system data file 'ibdata1' must be writable 请仔细核对第五步,第六步。
如果出现启动成功,但是测试新建数据库还是在原来的目录,试试重启服务器,或者仔细查看mysql配置文件,提醒一下,并不需要更改/usr/share/mysql/mysql-systemd-start 脚本中的datadir变量。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/30628.html