zoukankan      html  css  js  c++  java
  • Linux将MySQL数据库目录挂载至新数据盘

    对于Linux系统来说,挂载磁盘的方法其实都大同小异,所以本文以CentOS系统为例,介绍下Linux系统磁盘挂载方法,前面大部分内容源于天翼云的论坛。
    1.查看磁盘情况
    使用命令fdisk -l # 列出全部磁盘信息

    [root@qxyw ~]# fdisk -l
    
    Disk /dev/xvda: 42.9 GB, 42949672960 bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0008a9a5
    
    Device Boot          Start         End      Blocks   Id  System
    /dev/xvda1               1         523     4194304   82  Linux swap / Solaris
    Partition 1 does not end on cylinder boundary.
    /dev/xvda2   *         523        5222    37747712   83  Linux
    
    Disk /dev/xvde: 322.1 GB, 322122547200 bytes
    255 heads, 63 sectors/track, 39162 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000


    2.创建分区
     fdisk /dev/xvde # 对xvde硬盘进行分区
      n  # 创建一个新分区
      p  # 创建一个主分区(e为扩展分区)
      1  # 1表示第一个主分区
      回车  # 从第1柱面开始分区
      回车  # 表示整个xvde全写入第1分区(若需要将sdb分为多个分区,此时输入+分区大小)
      P  # 查看下已创建好的分区
      w  # 保存并退出

    [root@qxyw ~]# fdisk /dev/xvde
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x590ca8b1.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-39162, default 1): 
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-39162, default 39162): 
    Using default value 39162
    
    Command (m for help): p
    
    Disk /dev/xvde: 322.1 GB, 322122547200 bytes
    255 heads, 63 sectors/track, 39162 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x590ca8b1
    
        Device Boot      Start         End      Blocks   Id  System
    /dev/xvde1               1       39162   314568733+  83  Linux
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.


    3.创建分区文件系统并格式化磁盘
    # mkfs.ext4 /dev/xvde1 # 将xvde1以ext4格式进行格式化

    [root@qxyw ~]# mkfs.ext4 xvde1
    mke2fs 1.41.12 (17-May-2010)
    Could not stat xvde1 --- No such file or directory
    
    The device apparently does not exist; did you specify it correctly?
    [root@qxyw ~]# mkfs.ext4 /dev/xvde1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    19660800 inodes, 78642183 blocks
    3932109 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    2400 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
            4096000, 7962624, 11239424, 20480000, 23887872, 71663616
    
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 25 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.


    4.在home目录下面创建文件夹mysql,并且将设备挂载至/home/mysql。

    [root@qxyw home]# mount /dev/xvde1 /home/mysql
    [root@qxyw home]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/xvda2             36G  2.4G   32G   7% /
    tmpfs                 3.9G     0  3.9G   0% /dev/shm
    /dev/xvde1            296G  191M  281G   1% /home/mysql


    假如原来文件夹中有文件挂载之后文件会消失并且出现lost+found文件夹,这时不用担心,可以用umount命令进行取消挂载。
    原因是这样的。
    这个牵扯到linux的VFS(虚拟文件系统)机制。登录以后,你看到的各个目录,文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接看到硬盘上的实际目录树。
    按照我对http://www.ibm.com/developerworks/cn/linux/l-vfs/这篇文章所描述的粗浅理解,当你挂载某个设备到一个VFS挂载点上时(比如/home),系统就把VFS中的这个挂载点/home指向你最后所挂载的那个设备上。那么你现在访问该挂载点时,就会看到你最后挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点/home已经不再指向之前的设备。你可以把原来的设备卸载以后挂载到一个新的挂载点上来访问。

    5.将磁盘UUID写入fstab

    对于Linux系统来说,磁盘xvda和xvde的分区是根据系统启动时识别的先后顺序来排列,这样就会出现一个当主机重启后,出现跳盘的情况,为了避免此情况的发生,就需要我们将磁盘的UUID信息写入fstab文件,将分区与磁盘绑定。
    1)通过blkid获得磁盘分区的UUID
    [root@qxyw ~]# blkid
    /dev/xvda1: UUID="5546dd0c-ef40-451b-b266-df8ef3a49967" TYPE="swap" 
    /dev/xvda2: UUID="77fc0962-b3cf-400a-8903-0632e077fa09" TYPE="ext3" 
    /dev/xvde1: UUID="1d17945b-c369-42de-85a8-47217d24d3e5" TYPE="ext4"

    2)通过vim /etc/fstab在最后一行添加xvde1的磁盘信息

    #
    # /etc/fstab
    # Created by anaconda on Thu Jan 12 02:47:21 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=77fc0962-b3cf-400a-8903-0632e077fa09 /                       ext3    defaults        1 1
    UUID=5546dd0c-ef40-451b-b266-df8ef3a49967 swap                    swap    defaults        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   /sys                    sysfs   defaults        0 0
    proc                    /proc                   proc    defaults        0 0
    UUID=d17945b-c369-42de-85a8-47217d24d3e5 /home/mysql ext4 defaults      0 0


    6.将/var/lib/mysql/下的内容转移至/home/mysql/,并且在/var/lib/下创建mysql的链接,实际目录其实为/home/mysql

    [root@qxyw /]# cd home
    [root@qxyw home]# mkdir mysql
    [root@qxyw home]# mv /var/lib/mysql/* /home/mysql
    [root@qxyw home]# ln /home/mysql /var/lib/mysql


    7.验证一下,通过df命令查看磁盘的使用情况。然后进入mysql命令,创建数据库test1...,执行之后会在/home/mysql/文件夹下出现数据库test1,另外使用df命令查看磁盘使用情况。会发现/dev/xvde1使用量在增长。

    [root@qxyw mysql]# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/xvda2            37155392   2417608  32850400   7% /
    tmpfs                  4018012         0   4018012   0% /dev/shm
    /dev/xvde1           309633052    217092 293687524   1% /home/mysql
  • 相关阅读:
    c# 运算符 ? ??
    c# linq <未完>
    javasript this
    python3 闭包(一)
    dom 中的换行符
    (转)关于 awk 的 pattern(模式)
    linux note(1)
    python sqlite3
    python 特殊方法
    Go Example--锁
  • 原文地址:https://www.cnblogs.com/chenjianxiang/p/7060304.html
Copyright © 2011-2022 走看看