Ubuntu 16.04 install mysql5.7

Quick Start

在Ubuntu 16.04版本的mysql数据库,默认是5.7版本的;

1
2
3
sudo apt-get update
sudo apt-get install mysql-server
sudo mysql_secure_installation

更改数据库存储目录

想要修改MySQL数据库存储的目录,需要了解mysql配置文件,以及apparmor的配置文件,这里提一下apparnor 是控制访问权限的,而mysql依赖它,所以不单单是改完mysql配置文件的内容,同样的需要修改apparmor的相应的配置文件。

创建MySQL另外存储的目录

1
2
3
mkdir /database/mysql
chmod 700 /database/mysql
chowd mysql:mysq /database/mysql

将以前的数据库复制到新的存储目录

这样避免了再次初始化,并且数据还在

1
cp -av /var/lib/mysql/* /database/mysql

删除日志

不删除会报错

1
2
rm -rf /database/mysql/ib_logfile0
rm -rf /database/mysql/ib_logfile1

修改my.cnf

1
2
vim /etc/mysql/my.cnf   
修改datadir=/var/lib/mysql 为你需要修改的目录 这里是 datadir=/database/mysql

修改apparmor的配置文件

1
2
3
4
5
6
7
vim /etc/apparmor/usr.sbin.mysqld

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
修改为
/database/mysql/ r,
/database/mysql/** rwk,

reload apparmor的配置并重启

这里不要停止apparmor服务,因为我在测试的时候关闭以后修改配置文件后反到是不成功, 直接修改后reload 然后重启

1
2
service apparmor reload 
service apparmor restart

重启mysql

1
service mysql restart

验证mysql的目录是否已经更改

1
2
进入mysql 命令行,执行:
show variables like '%datadir%’;

如果启动不了, 查看/var/log/mysql/error.log
如果出现: InnoDB: The innodb_system data file ‘ibdata1’ must be writable 请仔细核对第5步,第6步
如果出现启动成功,但是测试新建数据库还是在原来的目录, 试试重启服务器,或者仔细查看mysql配置文件,提醒一下 并不需要更改/usr/share/mysql/mysql-systemd-start 脚本中的datadir变量