首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >移动和备份大型MySQL数据库

移动和备份大型MySQL数据库
EN

Stack Overflow用户
提问于 2014-01-22 11:28:09
回答 3查看 1.7K关注 0票数 1

我使用的是MySQL工作台,并且我已经构建了一个非常大(17 GB)的数据库。MySQL将数据放在C:\ProgramData\MySQL\MySQL Server5.5\ data目录中名为ibdata1的单个文件中。我的C盘空间不足,我想将其移动到外置驱动器。是否可以移动ibdata1文件,然后告诉MySQL指向另一个位置以找到它?另外,如果我想备份这些数据,我可以只复制ibdata1文件并保存它吗?如果我的电脑被盗了,我能从那个文件中恢复数据吗?

EN

回答 3

Stack Overflow用户

发布于 2014-01-22 12:51:54

您可以将整个C:\ProgramData\MySQL\MySQL Server 5.5\data复制/备份到另一个驱动器,将my.cnfmy.ini中的datadir选项更新为指向新位置,然后重新启动MySQL。

票数 1
EN

Stack Overflow用户

发布于 2014-01-22 14:37:31

是的,您可以更改Mysql服务器的数据目录。

从windows服务停止MySQL服务器。

将现有的数据目录(默认位于C:/Program Files/mysql/ data )复制到新路径或目录。

使用以下命令编辑MySQL配置文件:

打开my.cnf或my.ini此文件位于mysql bin目录下。

查找datadir的条目,并将路径更改为新的数据目录。

保存并关闭该文件。

重新启动MySQL服务器。

票数 1
EN

Stack Overflow用户

发布于 2014-01-22 15:14:24

数据数据您必须备份整个/

  • /目录和ibdata1文件,并将其放入新的//目录中。

  • InnoDB不知道文件系统的最大文件大小,因此在最大文件大小为小值(如2 2GB )的文件系统上要小心。要指定自动扩展数据文件的最大大小,请在autoextend属性后使用max属性。以下配置允许ibdata1增长到500MB的限制:

mysqld

innodb_data_file_path=ibdata1:10M:autoextend:max:500M

默认情况下,InnoDB在MySQL数据目录中创建表空间文件。要显式指定位置,请使用innodb_data_home_dir选项。例如,要使用名为ibdata1和ibdata2的两个文件,但在/ibdata目录中创建这两个文件,请按如下方式配置InnoDB:

mysqld

innodb_data_home_dir = /ibdata

innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend

InnoDB不会创建目录,因此在启动服务器之前,请确保/ibdata目录已存在。您配置的任何日志文件目录也是如此。使用Unix或DOS mkdir命令创建任何必要的目录。

确保MySQL服务器具有在数据目录中创建文件的适当访问权限。更一般地,服务器必须在需要创建数据文件或日志文件的任何目录中拥有访问权限。

  • 除非删除所有数据库、移除文件并重新加载转储文件,否则无法实际收缩ibdata1文件。

但是您可以对MySQL进行配置,使每个表(包括其索引)都存储为单独的文件。这样一来,ibdata1就不会变得那么大。根据Bill Karwin的评论,从MySQL 5.6版开始,这是默认启用的。

不久前我做了这件事。但是,要将您的服务器设置为对每个表使用单独的文件,您需要更改my.cnf以启用此功能:

mysqld

innodb_file_per_table

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21273621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档