千家信息网

MySQL中怎么重定位数据库目录的内容

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天就跟大家聊聊有关MySQL中怎么重定位数据库目录的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。◆MySQL 允许您重定位其中的数据目
千家信息网最后更新 2025年11月07日MySQL中怎么重定位数据库目录的内容

今天就跟大家聊聊有关MySQL中怎么重定位数据库目录的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

◆MySQL 允许您重定位其中的数据目录或元素。这样做有几个原因:

◆可以用比缺省定位的文件系统更大的容量在文件系统中放置数据目录。

◆如果数据目录在繁忙的磁盘上,可以将其放置到较少使用的驱动器上,以平衡物理设备之间的磁盘活动。为了类似的原因,可以将数据库和日志文件放在不同的驱动器上,或在驱动器之间对数据库进行再分布。

◆您可以运行多个服务器,并且每个服务器都有属于自己的数据目录。这是一种解决总进程文件描述符限制问题的方法,尤其是当不能重新配置系统的核心以得到更高的限制值时。

◆某些系统将 PID 文件保存在诸如 /var/run 的目录中。为了系统运作的一致性,您可以将 MySQL PID 文件也放在那里。

重定位方法

有两种对数据目录重定位的方法:

◆可以在命令行或在一个选项文件的 [mysqld] 组上,在服务器启动时间指定一个选项。


◆可以移动要重定位的内容,然后在原始的位置中做一个指向新位置的 symlink (symbolic link,符号链接)。

两种方法的任何一种都不能为您进行全部的重定位工作。表5-3 综合了可重定位的内容以及可用于重定位的方法。


如果您使用一个选项文件,可以指定在全局选项文件 /etc/my.cnf(Windows 中的 c:my.cnf)中的选项。当前的 Windows 版本还访问系统目录(c: 或 c:WINNT)。

您还可以使用缺省数据目录的选项文件 my.cnf(该目录编译在服务器中)。笔者不建议使用此文件。如果要重定位数据目录本身,必须保持缺省数据目录的完整性,以便在数据目录中放置一个选项文件,该文件将说明服务器应该在哪里找到"真正"的数据目录!真乱。如果想要用一个选项文件来指定服务器的选项,则最好使用 /etc/my.cnf。


重定位数据目录

现在说明重定位目录的方法与步骤。


1、关闭服务器,例如:


$ admin -u root -p shutdown

2、将数据库目录移动到新的位置


3、然后删除原来的数据库


4、如果用symlink方法(Unix平台上),例如:


$ ln -s NEWDIR DATADIR


DATADIR是标准的数据库目录的位置,也是原来的数据库目录路径

如果用起动选项的方法,可以这样启动:


$safe_mysqld --basedir=/path/to/dir/ & (Unix)
$mysqld --basedir=x:datadir (Windows)


如果用选项文件的方法:


在/etc/my.cnf(Unix)或者c:my.cnf(Windows)中加入:


[mysqld]
datadir=/path/to/dir/


5、重新启动数据库

重定位数据库

重定位数据库只能通过symlink方法,因此windows平台无法重定位数据库。为了重定位数据库,应关闭数据库,移动数据库的目录。删除原来的数据库目录,用指向新位置的symlink来代替她,然后启动服务器。


下面用一个实际的例子――备份bigdb――说明这个过程:

$mysqladmin -u root -p
$cd DATADIR
$tar cf bigdb|(cd /var/db;tar xf)
$mv bigdb bigdb.old
$ln -s var/db/bigdb .
$safe_mysqld &


应该以数据库目录所有者的身份执行这些命令。服务器工作正常之后,可以删除备份目录bigdb.old:

$rm -rf bigdb.old

重定位数据库表

对单个数据库表重新定位并不是特别有用,有时反而会造成很大的麻烦。可以通过将表的文件移动到另一个位置不再该书据库目录中创建指向这些文件的symlink来进行。方法类似于重定位数据库的方法。

但是,如果曾经发布过 ALTER TABLE或OPTIMIZE TABLE语句,则所做的这些重定位工作将被取消。其原因就不介绍了。

重定位状态文件

状态文件中PID文件、常规日志褐更新日志,可以用起动选项或者选项文件的方法重新定位。错误日志由safe_mysqld创建且不能够重新定位,除非编辑safe_mysqld脚本。

为了在另一个位置写状态文件,因关闭服务器,然后用制定新状态文件位置的恰当选项启动他。

启动选项:

--pid-file=pidfile PID文件
--log=logfile 常规日志
--log-update=updatefile 更新日志

选项文件

[mysqld]
pid-file=pidfile
log=logfile
log-update=updatefile

状态文件的命名规则:

1、如果以绝对路径指定一个状态文件的名称,则用该路径创建改文件。
例如,你指定-pid-file=/var/run/mysqld.pid,则该PID文件的就是/var/run/mysqld.pid

2、如果你只给出文件名,则文件在数据库目录下创建。

例如,你指定-pid-file=mysqld.pid则该PID文件为DATADIR/mysqld.pid

3、如果没有给出文件,则状态文件使用缺省的名字。
这样做将告诉服务器启用状态文件,这对PID文件没有意义,因为服务器总是使用它。例如:

$safe_mysqld --log --log-update &

或者,使用选项文件:

[mysqld]
log
log-update

对于常规日志,将生成DATADIR/hostname.log文件,hostname是运行服务器的主机名。对于更新日志,生成DATADIR/hostname.nnn的顺序文件。

4、对于更新日志,如果指定一个没有扩展名的更新日志,则MySQL在打开该更新日志是将生成数据的名字。这些名字用.nnn扩展名创建,这里的.nnn是违背已有的更新日志文件使用过的第一个号码(如,hostname.001、hostname.002等等)。可以通过指定明确的扩展名来忽略顺序名字的生成,然后服务器将仅使用您指定的名字。

总结

在本节中你将学到如何重新定位数据库目录,以及状态文件等。你可能需要重定位的内容有:

1、数据库目录
2、数据库
3、状态文件,包括常规日志,更新日志等

重定位的方法有:

1、符号链接
2、指定命令行参数
3、使用选项文件

看完上述内容,你们对MySQL中怎么重定位数据库目录的内容有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

文件 数据 目录 定位 数据库 方法 日志 服务器 服务 状态 内容 位置 更新 系统 名字 常规 生成 移动 原因 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库年月 网络安全的稿 上海项目软件开发服务要多少钱 璧山区网络软件开发服务常见问题 网络安全法与执法 中国红联网络安全 泰兴网络安全招聘 手游我的世界玩家怎么开服务器 学校网络安全排查情况汇报表 重庆网络安全技术提升 网络技术计划的特点 网络安全抽查评估活动总结 2u服务器机箱的u是什么意思 网络教育软件开发计划 济南警示教育体验中心软件开发 大学生网络安全被骗数据 魔法觉醒点错服务器了怎么办 前端平台软件开发 高中信息网络技术运用 网络安全工作指导思想 福建师范大学网络安全实验室 英雄联盟全球服务器与国服服务器 为什么dnf读不了服务器 山东跳跳互联网科技有限公司 网络安全的专门法律法规 通(北京)网络技术有限公司 腾讯pop服务器地址 网络教育软件开发计划 医学信息网络技术专业 服务器繁忙跟网络有关吗
0