腾讯云挂载数据盘以及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数据迁移至数据盘攻略的主要内容,如果未能解决你的问题,请参考以下文章