转载链接 :
关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤 :https://www.jianshu.com/p/58093888ee25

本文背景:

现有项目系统是使用OVA镜像的方式给到用户,用户直接虚拟机导入进行部署的。但是运行一段时期后,发现系统中数据库的文件不断增大,当时打包给用户使用的OVA系统镜像初始设置空间是固定的,所以导致了系统在写数据的时候无法再写入,同时导致了操作MYSQL的时候发生如图的异常信息:

**异常图片 **

所以接下来要进行的操作是如何将当前系统的数据文件直接放到外部挂载的磁盘上面。

实现步骤:

说明:后面的操作因为要使用root权限,所以此时直接进行root赋权操作:

sudo -i

如图,用户名变为了root了。

随后输入密码即可。

  • 分区和挂载配置
    1、查看可用存储设备
fdisk -l

如下图,可以看到,其中不仅仅有/dev/sda一个存储设备(当前系统默认使用的),还有一个/dev/sdb的存储设备。存储设备如果有第三个,那么会有个/dev/sdc,以此类推:


2、设置存储设备分区

fdsk /dev/sdb

上面命令是对存储设备sdb进行分区设置,输入该命令后,随后会出现Command(m for help)的设置引导,如下图:

m

输入m查看帮助:

简要说明一下:

a 设置启动分区,加上装了双系统,则次项可设置
d 删除分区,如果分错了,可以用来删除
m 打印帮助界面
n 创建一个新的分区
p 打印当前分区表
q 退出不保存
w 退出保存

因为我要进行一个新的分区设置,所以此时输入n

n

接下来选择设置主分区,即P

p

选择分区编号,默认即可,可以直接回车,接下来的选项都可回车(下图椭圆部分),等到出现下图的时候,输入w进行保存退出:

w

可以看到,上面生成了一个sdb1的分区了。如果一个分区的编号大于等于5,就说明这个分区是一个逻辑分区。
结束后,如果查看当前设备下面的分区内容,查看不到,则可以使用partprobe命令进行执行,相当于类似于重启有效。

3、格式化要挂载的存储设备

说明:当前系统默认使用RHEL6的格式化命令,即:mkfs.ext4 /dev/sdb1 或者 mkfs -t ext4 /dev/sdb1,两种命令方式均可。

mkfs -t ext4 /dev/sdb1

4、创建挂载点

格式化完毕后,创建挂载点,相当于创建一个目录,即:

mkdir /data-distance

上图中的data-distance目录,即我们需要挂载的外部存储目录,也就是后面要将mysql数据文件存储的位置。

5、关联挂载点

使用mount命令进行挂载,挂载成功后,使用df -h查看挂载状况

mount /dev/sdb1 /data-distance/
df -h

如上图,而已看到sdb1已经挂载到了新建的文件目录/data-distance中。

  • 设置挂载点开机启动

系统开机会自动去读取一个配置文件,决定挂载那些文件系统。该文件即/etc下的fstab文件。所以,我们如果设置开机自动挂载外部磁盘,也就是我们上面的data-distance目录有效可用,将需要编辑这个文件。
但是,通常自动挂载不推荐使用名称的方式进行,而是使用UUID唯一标识进行设置,所以我们可用先查看挂载点对应的UUID。

blkid | grep sdb1

结果如图:

将上面的UUID进行复制,接下来进行编辑/etc/fstab操作:

vi /etc/fstab


编辑完毕后保存即可。

  • 配置MYSQL

在进行完毕上述操作之后,接下来就是对mysql数据内容的迁移操作了。在ubuntu系统中,mysql默认的文件存放位置说明:
/usr/bin 客户端程序和脚本
/usr/sbin mysqld 服务器
/var/lib/mysql 日志文件,数据库 [重点要知道这个]
/usr/share/doc/packages 文档
/usr/include/mysql 包含(头)>文件
/usr/lib/mysql 库
/usr/share/mysql 错误消息和字符集文件
/usr/share/sql-bench 基准程序

所以,如果要修改MYSQL的存储路径,即将上面/var/lib/mysql的指向给变更为我们挂载的目录即可。

  • 停止系统服务
systemctl stop lixun
  • 停止MYSQL服务
service mysqld stop
  • 复制原有数据到挂载目录
cp -arp /var/lib/mysql /data-distance
  • 修改挂载目录权限
chown -R mysql:mysql /data-distance
  • 修改配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到文件中的datadir = /var/lib/mysql,将其注释(前面添加#)掉,随后新增一行,内容为
datadir=/data-distance/mysql,随后保存退出。
# datadir = /var/lib/mysql
datadir = /data-distance/mysql
  • 修改启动文件
vi /etc/apparmor.d/usr.sbin.mysqld

找到文件中的/var/lib/mysql r 和/var/lib/mysql/** rwk ,将其改为如下:

# /var/lib/mysql r,
#/var/lib/mysql/** rwk,
/data-distance/mysql r,
/data-distance/mysql/** rwk,

然后保存退出。

  • 重启MYSQL服务
/etc/init.d/apparmor restart
/etc/init.d/mysql restart
  • 登录MYSQL查看当前配置是否生效
mysql -u root -p

输入密码后,查看配置信息:

show variables like '%data%';

即如果datadir已生效,则说明当前操作已完成。

参考链接 :

关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤 :https://www.jianshu.com/p/58093888ee25

关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤相关推荐

  1. ubuntu 16.04 远程挂载硬盘

    前段时间给 ubuntu 主机加装了一个硬盘,在用的时候都是每次开机后手动挂载该硬盘.但由于疫情原因,现在需要远程连接主机加载硬盘,经搜索教程,方法如下: 1. 打开putty 并连接到主机,登陆自己 ...

  2. linux 4t磁盘格式化,Ubuntu 16.04系统挂载4T硬盘

    终端输入 sudo fdisk -l  查看机器上都插了哪些安装盘,看到/dev/sda,并且没有进行分区且大小为3.7T,是要挂载的硬盘. $ sudo fdisk -l Disk /dev/nvm ...

  3. Ubuntu 16.04添加新硬盘操作流程

    需求背景: 由于电脑的硬盘只有1T不够装代码,新增加1T硬盘用装android代码. 操作环境: 系统:Ubuntu 16.04 硬件:硬盘 1T 操作过程: 1.拆开电脑机箱,安装硬盘,具体操作省略 ...

  4. Pwn环境配置(二)——VMware虚拟机安装Ubuntu 16.04系统

    Pwn环境配置(二) 安装Ubuntu 16.04系统,至于为什么非要是Ubuntu 16.04系统呢,我也不太清楚,只知道大佬们用的都是这个.好像是,它兼容性好之类的吧- 下面步入正题开始安装, 首 ...

  5. 在Ubuntu 16.04系统中,将Logitech G920方向盘连接到Carla服务器

    注: 电脑是win10 + Ubuntu 16.04双系统 我们用Logitech g29方向盘的程序来模拟G920方向盘,所以接下来运行出现g29等字样,是没有问题的 1.jstest-gtk 1) ...

  6. Ubuntu 16.04系统下CUDA8.0配置Caffe教程

    由于最近安装了Ubuntu 16.04,本文教程的特点是不需要降级gcc的版本,毕竟cuda8.0已经支持gcc5以上(默认不支持,实际支持). 本文是在参考caffe官网教程以及http://www ...

  7. 在linux搭建wiki教程,在Ubuntu 16.04系统上安装WikkaWiki

    一.WikkaWiki介绍 WikkaWiki是一个灵活的.兼容标准的.轻量级的.平台独立的开源Wiki引擎,它使用PHP语言开发,后端存储采用了MySQL数据库.WikkaWiki的设计目标是速度快 ...

  8. Ubuntu 16.04系统实用插件安装方法

    Ubuntu 16.04系统实用插件安装方法 Ubuntu 16.04 系统实用插件安装方法链接 搜狗输入法 链接: https://blog.csdn.net/u010648921/article/ ...

  9. linux升级安装失败,更新Ubuntu 16.04系统中安装Adobe Flash更新失败的解决

    最近在更新 Ubuntu 16.04系统的时候,发现总是在安装 Adobe Flash更新的时候失败,提示如下信息: 正在处理用于 update-notifier-common (3.168.5) 的 ...

最新文章

  1. 提升职场价值,把握成长方向
  2. Windows Phone 7 Tips (4)
  3. dataset__getitem___一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
  4. python调用shell命令-python调用shell命令小结
  5. 傻瓜式Linux之一:系统安装
  6. 手把手教你实现基于LSTM的情感分析(LSTM-based Sentiment) Classification
  7. 32.Docker安装MongoDb
  8. 在信用健全的今天,史玉柱背负2.5亿债务还能翻身吗?
  9. System V 消息队列
  10. Java用freemarker导出word
  11. 八、开发者工具和指南(三) Source code organization
  12. Python办公自动化 - 4 PDF办公自动化
  13. 话里话外:从信息系统两大特性理解信息化的实施难度
  14. fckeditor出现the server didn't send back a proper XML response问题的解决(因为使用了“主题”)...
  15. 遇到 java.io.EOFException 异常的解决办法
  16. MongoDB在RHEL6.5下的安装
  17. scipy.linalg中kron的用法
  18. python爬取新浪微博大V的所有微博内容
  19. CKfinder3版本冲突
  20. 龙之谷2服务器维护,龙之谷2更新后进不去游戏解决方法

热门文章

  1. 基于评论、新闻的情感倾向分析作商品的价格预测
  2. android 美团滑动停止,cc美团 滑动删除(SwipeListView)
  3. grafana默认用户名密码_提升运维格调?Grafana整合Zabbix
  4. 错误: 找不到符号_Excel函数常见特殊符号、字符解读
  5. gimp 去掉一个颜色的背景_把拍出来的图片文件的背景阴影去掉——用GIMP色阶功能修图
  6. Vue-学生管理功能实例
  7. java多端登录_【Java】一个登录功能也能玩出这么多花样?sa-token带你轻松搞定多地登录、单地登录、同端互斥登录...
  8. 巧用Android网络通信技术,在网络上直接传输对象
  9. 日本人的幼儿教育,看一看还是有意…
  10. 在防御方面应如何选择服务器?