最近写一个项目需要用MySQL存储数据,本人只是按照默认方式更新MySQL,但是我的Linux的root目录只分配了8G,随着MySQL数据库中的数据增加出现的以下问题:
1. Linux系统提示根目录空间不足,用df -lh命令查看,也确实是根目录空间使用率达100%;
2. 应用程序中异常终止,错误信息会提示tablespace不足,无法存储。
1. ubuntu中安装MySQL5.7后,本人电脑上的默认路径如下:
数据库目录:/var/lib/mysql/ 配置文件:/usr/share/mysql(命令及配置文件) ,/etc/mysql(如:my.cnf) 相关命令:/usr/bin(mysqladmin mysqldump等命令) 和/usr/sbin启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录)
可以看到数据库目录是在根目录下的,我们只需要将其修改为其他路径即可。
2. 创建目标文件
mkdir /data/mysql
3. 把默认安装的MySql数据库复制到/data/mysql中并设置权限
sudo cp -R /var/lib/mysql/* /data/mysql sudo chown -R mysql:mysql /data/mysql <==修改新路径的访问权限 sudo service mysql stop <==停止mysql服务
4. 修改/etc/mysql/mysql.conf.d/mysqld.cnf 文件 :
datadir = /data/mysql
5. 修改启动文件
sudo vim /etc/apparmor.d/usr.sbin.mysqld 将 /var/lib/mysql/ r /var/lib/mysql/** rwk 改为 /data/mysql/ r /data/mysql/** rwk
6. 重启MySQL
sudo /etc/init.d/apparmor restart sudo /etc/init.d/mysql restart
7. 登录MySql并验证数据目录
show variables like '%dir%';
<==当显示datadir 为/data/mysql时,修改成功