背景
前篇文章中安装了mysql,但是系统盘只有40G,以后肯定不够用,于是,又增加了200G的数据盘,那此时就需要挂在盘,并需要将mysql的数据存储移动到数据盘中
1、挂载
1)检查磁盘挂在
分明买了数据盘,但是在服务器上只看到一个盘,惊愕,难不成华为是个大骗子吗
## 赶紧使用命令查看下磁盘是否存在
## fdisk -l
## 发现是有个磁盘是没有挂载的(/dev/vdb是没有挂载的)
2) 磁盘分区
使用命令fdisk /dev/vdb进行数据分区
参数说明: n:新建分区 p: 主分区 e: 扩展分区 上面可以默认回车,
最后输入w (write)将操作写入磁盘 按顺序输入`n、p、1、w`
3)格式化分区
## 格式化分区
mkfs.ext4 /dev/vdb
4) 创建挂在目录
## 创建data目录
mkdir /data
5) 执行挂载命令
## 可以直接使用mount命令
mount /dev/vdb /data
## 取消挂载命令为umount
umount /dev/vdb /data
## 也可以将配置写在/etc/fstab中(建议使用该种方式)
## 使用echo追加配置的方式
echo "/dev/vdb /data ext4 defaults 0 0" >> /etc/fstab
## 也可以使用vi命令直接编辑
## 然后使用 mount -a 的命令执行 fstab文件中被修改的部分
mount -a
此时再查看磁盘情况,如果出现挂在出错,或者是需要改动挂在目录,可以使用umount命令卸载之后重新挂在
数据盘挂在成功
2、mysql数据迁移
将mysql的数据存储移动到新的数据盘中
1)关闭mysql服务
## 关闭mysql服务
service mysqld stop
2)迁移数据目录
找到mysql中数据存储的datadir路径,迁移该目录文件
## -arp 参数就是为了保持原文件目录和文件的权限
## 不做任何改动的直接复制到目标路径下
cp -apr /usr/local/mysql/data /data/mysql-data
可以好似用ll命令查看分组等信息
如果是用户组有问题可以使用以下命令改动分组
## 改变分组信息 如果是没有用户请查看看上一篇文章
chown -R mysql:mysql /data/mysql-data
3)修改配置
mysql的数据目录已经改变了,需要修改my.cnf文件中的配置,主要是和数据生成位置有关的配置
[mysqld]
# mysql安装根路径
basedir = /usr/local/mysql/mysql-5.7.38
datadir = /data/mysql-data
# 紧急跳过权限验证,直接登录
# skip-grant-tables=1
port = 3306
socket = /data/mysql-data/mysql.sock
character-set-server=utf8
log-error = /data/mysql-data/mysqld.log
pid-file = /data/mysql-data/mysqld.pid
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
4)重启服务
## 重启服务
service msyqld start
登录的时候,如果出现
Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "
可通过以下命令建立软引用解决
## 建立软引用
ln -s /data/mysql-data/mysql.sock /tmp/mysql.sock