腾讯云挂载数据盘以及mysql数据迁移至数据盘攻略

Posted lucasma.eth

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了腾讯云挂载数据盘以及mysql数据迁移至数据盘攻略相关的知识,希望对你有一定的参考价值。

默认购买了腾讯云服务器后,数据盘是没有挂载的,用命令可以看出

ubuntu@VM-0-9-ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            918M     0  918M   0% /dev
tmpfs           188M  5.3M  182M   3% /run
/dev/vda1        50G  1.7G   46G   4% /
tmpfs           937M   24K  937M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           937M     0  937M   0% /sys/fs/cgroup
tmpfs           188M     0  188M   0% /run/user/500

只有50G,我买的200G的数据盘没有显示出来。


不管是任何云服务器都是没有多少磁盘空间的,最大的不过就20G,腾讯云默认Linux只有8GB系统盘,一般的网站也足够使用,如果额外购买的数据盘安装系统之后根据不同的面板、系统的路径问题可能不会自动加载到指定的数据盘目录,需要手工进行加载数据盘 ,也就是常说的挂载。


为腾讯云服务器增添数据盘

登录 Linux 云服务器后,使用以下命令查看数据盘相关信息:

ubuntu@VM-0-9-ubuntu:~$ sudo fdisk -l
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x27921508

Device     Boot Start       End   Sectors Size Id Type
/dev/vda1  *     2048 104857599 104855552  50G 83 Linux


Disk /dev/vdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

可以看到200GB的/dev/vdb信息,这个还没有挂载。

执行命令: fdisk /dev/vdb, 依次输入 n 、p、 1、 回车、回车、w

ubuntu@VM-0-9-ubuntu:~$ sudo fdisk /dev/vdb

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x278cf642.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-419430399, default 2048): 
Last sector, +sectors or +sizeK,M,G,T,P (2048-419430399, default 419430399): 

Created a new partition 1 of type 'Linux' and of size 200 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

查看新分区

ubuntu@VM-0-9-ubuntu:~$ sudo fdisk -l
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x27921508

Device     Boot Start       End   Sectors Size Id Type
/dev/vda1  *     2048 104857599 104855552  50G 83 Linux


Disk /dev/vdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x278cf642

Device     Boot Start       End   Sectors  Size Id Type
/dev/vdb1        2048 419430399 419428352  200G 83 Linux

格式化新分区

注意:
在进行分区格式化时,开发者可以自行决定文件系统的格式,如 ext2、ext3 等。这里采用ext3格式。

mkfs.ext3 /dev/vdb1

挂载新分区

执行以下命令创建 mydata 目录:

mkdir /mydata

执行以下命令手动挂载新分区:

mount /dev/vdb1 /mydata

最后使用以下命令查看新分区信息,可以看到数据盘了。

ubuntu@VM-0-9-ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            918M     0  918M   0% /dev
tmpfs           188M   20M  168M  11% /run
/dev/vda1        50G  1.7G   46G   4% /
tmpfs           937M   24K  937M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           937M     0  937M   0% /sys/fs/cgroup
tmpfs           188M     0  188M   0% /run/user/500
/dev/vdb1       197G   60M  187G   1% /mydata

添加分区信息

如果希望云服务器在重启或开机时能自动挂载数据盘,必须将分区信息添加到/etc/fstab中。如果没有添加,则云服务器重启或开机后,都不能自动挂载数据盘。下面的命令需要在root下执行才可以。

root@VM-0-9-ubuntu:/home/ubuntu# echo '/dev/vdb1 /mydata ext3 defaults 0 0' >> /etc/fstab

确认下是否成功,


ubuntu@VM-0-9-ubuntu:~$ sudo cat /etc/fstab
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/vdb1 /mydata ext3 defaults 0 0

参考:

https://cloud.tencent.com/document/product/213/2042

mysql的数据迁移到/mydata目录

首先确认目前mysql的数据存储目录在哪,

mysqladmin -u root -p variables | grep datadir

也可以查看mysql的配置文件,

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3511
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp

数据目录在/var/lib/mysql目录下。用下面的命令可以看到该目录目前的大小:

ubuntu@VM-0-4-ubuntu:/var/lib$ sudo du -h -s mysql
199M    mysql

可以随便插入一些数据,看看这个目录会不会增加(当然要插入的数据量多到能看到变化才行)。

首先暂停mysql服务

service mysql stop

先把/var/lib/mysql/目录下的所有文件拷贝到/mydata/mysql目录下

sudo mv /var/lib/mysq/* /mydata/mysql

然后要改mysql的配置文件

ubuntu@VM-0-4-ubuntu:/etc/mysql/mysql.conf.d$ pwd
/etc/mysql/mysql.conf.d
ubuntu@VM-0-4-ubuntu:/etc/mysql/mysql.conf.d$ ls
mysqld.cnf  mysqld_safe_syslog.cnf
ubuntu@VM-0-4-ubuntu:/etc/mysql/mysql.conf.d$ sudo vi mysqld.cnf 

mysqld的部分改成如下的样子,

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3511
basedir         = /usr
datadir         = /mydata/mysql

接着改,

sudo vim /etc/apparmor.d/usr.sbin.mysqld 

在这个文件里找到了修改之前的 mysql 数据库路径:/var/lib/mysql。

改成修改后的数据目录地址


# Allow data dir access
  # /var/lib/mysql/ r,
  # /var/lib/mysql/** rwk,
  /home/mysqldata/ r,
  /home/mysqldata/** rwk,

重启apparmor

ubuntu@VM-0-4-ubuntu:/etc/mysql/mysql.conf.d$ sudo service apparmor restart

重新启动mysql服务

service mysql restart

完成。

以上是关于腾讯云挂载数据盘以及mysql数据迁移至数据盘攻略的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云挂载数据盘的步骤

阿里云Linux服务器,挂载硬盘并将系统盘数据迁移到数据盘

腾讯云服务器linux系统盘满了怎么办

腾讯云挂载数据盘

腾讯云新购主机怎么添加数据盘

linux系统网站从系统盘,迁移到数据盘