视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
调整MySQL数据目录位置_MySQL
2020-11-09 17:38:03 责编:小采
文档

MySQL数据库的数据目录位置,包括目录里的各种文件的位置)可根据实际情况进行调整。调整的方法有两种,一种是使用符号链接;一种用服务器启动选项。

下面一个列表说明了数据目录及目录中文件各自适宜采用的方法:

Table 3.2. MySQL数据目录及目录中文件位置的调整方法

调整对象 适用方法
整个数据目录 启动选项和符号链接
数据库目录 符号链接
数据表 符号链接
InnoDB数据表空间 启动选项
PID文件 启动选项
日志文件 启动选项

下面是各种调整方法的具体操作过程:

在调整MySQL的数据目录时,要先停止服务器,再把数据目录移动到新的位置。接着,我们可选择在原来目录下创建一个符号链接指向新的位置,或者用启动选择--datadir指向新的数据目录。推荐用创建符号链接的方法,因为如果那个数据目录中有my.cnf文件,相应的服务器还能找到它。

数据库只能存在于MySQL数据目录中,所以只能使用符号链接的方法调整它的位置。在Linux系统的操作步骤如:

关闭服务器;

把数据库目录拷贝到新的位置;

删除原来的数据库目录;

在原来的MySQL数据目录中创建一个同名符号链接指向新的位置;

重新启动服务器。

在windows下的操作方法不些不同,操作方法如下:

关闭服务器;

把数据库目录移动新的位置;

删除原来的数据库目录;

在原来数据目录下建一个同名的.sym文件,在文件中输入数据库新目录的全路径,如c:/mysql/newdir/mydb。这个文件就相当于Linux下的符号链接;

重启服务器。


为了支持符号链接功能,必须用--use-symbolic-links选项启动服务器;或在选项文件的[mysqld]节中添加use-symbolic-links选项。


MySQL必须是3.23.16以上版本且是max服务器(mysqld-max或mysqld-max-nt)。

要移动数据表,必须满足以下所有条件才行:

MySQL的版本必须是4.0或以上的版本;

操作系统必须有一个可用的realpath()调用;

移动的数据表必须是MyISAM类型的数据表。

在满足以上所有条件后,我们就可把.MYD数据文件和MYI索引文件移到新位置,再在原来位置创建两个同名符号链接指定新的位置。注意,.frm定义文件仍需留在原来的数据库目录中。

如以上条件不能全部满足,最好不要移动数据表文件。否则一旦你运行ALTER TABLE、OPTIMIZE TABLE、REPAIR TABLE语句对移动过的数据表进行优化或修改,这样数据表就会回到原来的位置,使移动操作失效。因为这些命令的执行过程是这样的:它会先在数据目录中创建一个临时数据表并对这个临时数据表进行优化或修改,然后删除原来的数据表(这里是你为了移动数据表而创建的一个符号链接),再把临时数据表更名为原来的数据表名称。这样一来,你移走的数据表就和这个数据库完全没有关系了。基于以下的不稳定因素,如无特殊必要,不建议移动数据表。

InnoDB表空间是通过在选项文件中使用innodb_data_home_dir和innodb_data_file_path选项列出InnoDB表空间组成文件清单的方法来配置的,所以我们可通过修改这些选项来重新安置InnoDB表空间的组成文件。步骤如下:

关闭服务器;

移动组成表空间的文件;

修改选项文件,指出组成表空间的文件的新位置;

重启服务器。

状态文件和日志文件的位置可通过选项文件或启动服务器时指定。

下载本文
显示全文
专题