服务器配置:Centos7.3系统,Apache、PHP 5.6 、数据库:MariaDB
天翼云:系统盘50G,数据盘250G
原目录:
Apache网页文件目录-/var/www/html
MariaDB数据目录-/var/lib/mysql
目标:将以上目录挂载在数据盘上。
方法:通过目录软链接实现,指令:ln -s
步骤一:挂载数据盘
将数据盘挂载至服务器,进行分区,因后面需要软链接两个目录,因此分区至少两个区。具体
一、查看磁盘情况
# fdisk -l # 列出全部磁盘信息
二、创建分区
# fdisk /dev/sdb # 对sdb硬盘进行分区
n # 创建一个新分区
p # 创建一个主分区(e为扩展分区)
1 # 1表示第一个主分区
回车 # 从第1柱面开始分区
输入分区大小+回车 # 若需要将sdb分为多个分区,此时输入+分区大小
P # 查看下已创建好的分区
继续创建第二个分区
n # 创建一个新分区
p # 创建一个主分区(e为扩展分区)
2 # 2表示第二个主分区
回车 # 默认从上一分区结束出开始分区
回车 # 表示余下全写入第2分区(若需要将sdb分为多个分区,此时输入+分区大小)
P # 查看下已创建好的分区
w # 保存并退出
三、创建分区文件系统并格式化磁盘
先确认新创建分区名(各自系统情况不同,需用fdisk -l 指令查):/dev/sdb1和/dev/sdb2
然后通过以下指令格式化磁盘
# mkfs.ext4 /dev/sdb1 # 将sdb1以ext4格式进行格式化
# mkfs.ext4 /dev/sdb2 # 将sdb2以ext4格式进行格式化
四、挂载分区
# mkdir /home
/html # 创建/home/
html目录,若磁盘需要挂到已有目录,可省略此步
# mount /dev/sdb1 /home/
html # 将sdb1挂载到/home/
html目录下
# mkdir /home
/mysql # 创建/home/
mysql目录,若磁盘需要挂到已有目录,可省略此步
# mount /dev/sdb2 /home/
mysql # 将sdb2挂载到/home/
html目录下
# df -h # 查看当前磁盘挂载情况
五、将磁盘UUID写入fstab
对于Linux系统来说,磁盘sda和sdb的分区是根据系统启动时识别的先后顺序来排列,这样就会出现一个当主机重启后,出现跳盘的情况,为了避免此情况的发生,就需要我们将磁盘的UUID信息写入fstab文件,将分区与磁盘绑定。
# blkid # 显示全部磁盘分区的uuid信息
# vim /etc/fstab # 对fstab文件进行编译
UUID=1b406cce-4aec-4c90-9c4b-d43d7a7a0db1 /CPGZ ext4 defaults 0 0 # 在最后一行添加sdb1的磁盘信息
注意:第五部必须做,否则服务器重启就不会自动挂载的。
我这里将两个分区分别挂载在/home/www 与 /home/mysql 目录下。
![](https://img-blog.csdnimg.cn/20200120100201241.jpg)
步骤二:将这两个目录进行软链接,操作前停止Apache与数据库服务。
一、软链接网页文件目录
Apache 网页文件目录可以打开 /etc/httpd/conf/httpd.conf 文件,查找“DocumentRoot” ,可以看到网页文档目录为:"/var/www/html"。
然后在命令界面操作:
cd /var/www/ #进入网站上层目录
mv /html /home/www #把网页文档目录移动到/home/html目录,即数据盘
ln -s /home/www/html #原目录不变,并链接到数据盘,原有任何设置均不改变
mv /html /home/www #把网页文档目录移动到/home/html目录,即数据盘
ln -s /home/www/html #原目录不变,并链接到数据盘,原有任何设置均不改变
二、软链接数据目录
MariaDB 数据目录一般在:/var/lib/mysql
在命令界面操作:
cd /var/lib #进入网站上层目录
mv mysql /home/mysql #把mysql数据目录移动到/home/mysql目录,即数据盘
ln -s /home/mysql/mysql #原目录不变,并链接到数据盘,原有任何设置均不改变
mv mysql /home/mysql #把mysql数据目录移动到/home/mysql目录,即数据盘
ln -s /home/mysql/mysql #原目录不变,并链接到数据盘,原有任何设置均不改变
步骤三:重启Apache、MariaDB服务:
apache
启动
systemctl start httpd
停止
systemctl stop httpd
重启
systemctl restart httpd
或者
service httpd stop
service httpd start
service httpd restart
mysql
启动
systemctl start mysqld
停止
systemctl stop mysqld
重启
systemctl restart mysqld
或者
service mysqld stop
service mysqld start
service mysqld restart