如何将mysql存储位置迁移到一块新的磁盘上

1.准备一块新的磁盘,并格式化为与当前根分区相同的文件系统,创建目录并挂载磁盘

]#fdisk -l #查看磁盘信息
]#fdisk /dev/sdb #进行分区
]# df -T #可以查看到根分区的文件系统类型
]#mkfs.xfs /dev/sdb1 #将新的磁盘分区格式化
]#mkdir /data
]#mount /dev/sdb1 /data #挂载磁盘
或者写入/etc/fatab文件中,添加一行:/dev/sdb1 /data xfs defaults 0 0 开机自动挂载
]#df -h //确认挂载结果

2.停止数据库服务,修改配置文件

]#systemctl stop mysqld
]#vim /etc/my.cnf

   datadir=/data/mysql
   socket=/data/mysql/mysql.sock
   log-error=/data/log/mysqld.log
   log_bin=/data/mysql/bin-log
   log-bin-index=/data/mysql/bin-log.index
  [client]
   socket=/data/mysql/mysql.sock  #mysql客户端sock默认是去读取/var/lib/mysql/mysql.sock ,所以需要在配置文件中添加客户端的sock配置。
  ]#vim /data/mysql/bin-log.index

修改binlog索引文件,重新指定binlog的存放路径。

3.创建相应目录,更改权限。迁移数据库目录。

]#chown -R mysql:mysql /data
]#mkdir /data/log
]#mv /usr/lib/mysql /data/

4.启动服务,查看更改结果。

]#systemctl start mysqld
进入数据库
mysql >show variables like ‘datadir';
#可以看到数据库的存储位置,查看数据是否正确。
mysql>show variables like ‘%sock%';
#查看sock文件位置,也可以查看/data/相应目录下数据是否正确。

防火墙关闭,selinux处于Disabled状态。

总结

以上所述是小编给大家介绍的如何将mysql存储位置迁移到一块新的磁盘上,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • MySQL Cluster如何创建磁盘表方法解读

    一.概念 MySQL Cluster采用一系列的Disk Data objects来实现磁盘表. Tablespaces:作用是作为其他Disk Data objects的容器. Undo log files:存储事务进行回滚需要的信息,一个或者多个undo log files组成一个log files group,最后,该log file group关联到一个tablespaces. Data files:作用是存储表中的数据,data file直接关联到tablespaces. 在每一个数据

  • Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)

    本文为大家分享了解决Mysql存储引擎MyISAM常见问题的方法,供大家参考,具体内容如下 一.处理MyISAM存储引擎的表损坏 在使用MySQL,可能会遇到过MyISAM存储引擎的表损坏的情况.如以下情况: .frm被锁定不能修改 找不到.myi文件(索引文件) 意外结束记录 文件被毁坏 从表处理器得到错误nnn 解决办法1: 使用MySQL自带的myisamchk工具进行修复 打开bin目录,可以看到该工具 命令如下 myisamchk -r tablename r代表recover 或 m

  • Mysql InnoDB删除数据后释放磁盘空间的方法

    Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长. 如果在创建数据库的时候设置innodb_file_per_table=1,这样InnoDB会对每个表创建一个数据文件,然后只需要运行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间. 运行OPTIMIZE TABLE 表名后,虽然最后会报Table does not support optimize, doing recreate + analyze in

  • 磁盘已满造成的mysql启动失败问题分享

    突然发现mysql死活都启不起来了: 复制代码 代码如下: /etc/init.d/mysql restartStopping MySQL:                                            [FAILED]Timeout error occurred trying to start MySQL Daemon.Starting MySQL:                                            [FAILED] kill了不行,

  • 几个缩减MySQL以节省磁盘空间的建议

    我们在工作中时常会遇到一些客户的TPS\QPS都不太高,但磁盘占用非常大,一旦单实例空间太大,像内存.网络.CPU以及备份都将增加相应的开销.可能仅仅是由于空间不满足使得我们不得不进行扩容,下面的方法提供给大家参考.有则改之无则加勉. 1.表结构设计上 1) 字符集是否遵循了最小化原则?(能用latin的就不用gbk.能用gbk的就不用utf8) 2) 索引上是否有滥用?(根本不使用的字段建索引.不适合建索引的字段建索引.重复建索引或者不能很好的利用前缀索引等) 3) 冗余字段是否太多?(各表中

  • MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句

    查询所有数据库占用磁盘空间大小的SQL语句: 复制代码 代码如下: select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_sizefrom information_schema.tablesgroup by TABLE_SCHEMAorder by dat

  • 如何将mysql存储位置迁移到一块新的磁盘上

    1.准备一块新的磁盘,并格式化为与当前根分区相同的文件系统,创建目录并挂载磁盘 ]#fdisk -l #查看磁盘信息 ]#fdisk /dev/sdb #进行分区 ]# df -T #可以查看到根分区的文件系统类型 ]#mkfs.xfs /dev/sdb1 #将新的磁盘分区格式化 ]#mkdir /data ]#mount /dev/sdb1 /data #挂载磁盘 或者写入/etc/fatab文件中,添加一行:/dev/sdb1 /data xfs defaults 0 0 开机自动挂载 ]#

  • MySQL存储引擎中的MyISAM和InnoDB区别详解

    在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问.为了解开这个谜题,搜寻了网络,找到了如下信息: MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点:不支持事务处理(transaction).不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完

  • docker修改默认存储位置图文教程

    本方法是通过system下创建配置文件,直接在配置文件中配置新的docker存储路径进行修改. 第一步,将默认docker存储位置数据复制到新的路径下 docker默认存储路径为:/var/lib/docker 新的存储路径为:/data1/docker,该路径下的文件大小如下: 第二步,在/etc/systemd/system下创建docker.service.d目录 第三步,将/lib/systemd/system/docker.service文件复制到docker.service.d目录下

  • MySQL数据文件存储位置的查看方法

    我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊.表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦! 在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下命令: show global variables like "%datadir%";

  • mysql 5.7更改数据库的数据存储位置的解决方法

    随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了.因此,必须要给存放的数据换个地方了.下面是操作过程中的一些步骤.记下来,以后日后查看. 1.修改mysql数据存放的目录 要修改两个地方,其一是修改/etc/my.cnf文件中的datadir.默认情况下: datadir=/var/lib/mysql 因为我的/data/目录比较大,所以将其改为: datadir=/data/mysql/ 还要修改/etc/init.d/mysqld文件,将

  • Centos7 移动mysql5.7.19 数据存储位置的操作方法

    场景:随着数据量的增加,mysql所在的磁盘已占满,需要将data移动到空间较大的盘上. 方法: 1. 关闭mysql服务 service mysqld stop 2. 将data目录移动到空间较大的盘上 cp -a /usr/local/mysql/data/ /home/mysqldata/ -a :相当于 -pdr 的意思(参数pdr分别为:保留权限,复制软链接本身,递归复制): 3 . 修改配置文件my.cnf ... sql_mode=NO_ENGINE_SUBSTITUTION,ST

  • 深入MySQL存储引擎比较的详解

    MyISAM是MySQL的默认存储引擎.MyISAM不支持事务.也不支持外键,但其访问速度快,对事务完整性没有要求. InnoDB存储引擎提供了具有提交.回滚和崩溃恢复能力的事务安全.但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引. MEMORY存储引擎使用存在内存中的内容来创建表.每个MEMORY表只实际对应一个磁盘文件.MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引.但是一旦服务关闭,表中的数据就会

  • mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

    本文实例分析了mysql存储emoji表情报错的处理方法.分享给大家供大家参考,具体如下: utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1

  • 简单了解MySQL存储引擎

    1. MySql体系结构 在介绍存储引擎之前先来介绍下MySql的体系结构,以便大家知道存储引擎在MySql整个体系中处于什么位置.下图是官方提供的一张架构图: MySQL体系结构图 从上图可以发现,MySQL由以下几部分组成: 连接池组件 管理服务和工具组件 SQL接口组件 查询分析器组件 优化器组件 缓冲(Cache)组件 插件式存储引擎 物理文件 MySQL数据库区别于其他数据库的最重要的一个特点就是其插件式的表存储引擎,从上图中也可以看到,MySql支持很多种存储引擎.需要特别注意的是,

  • Docker 修改docker存储位置 修改容器镜像大小限制操作

    新版本这样好像快不行了,不推荐了. 不行可以直接软连接去修改存储位置. vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd  --graph=/work/docker_data --storage-driver devicemapper --storage-opt dm.loopdatasize=1000G --storage-opt dm.loopmetadatasize=10G --storage-opt

随机推荐