3

我正在运行带有 IIS、PHP 和 MySQL 的 Windows 2008 服务器。MySQL 作为服务安装。服务器上有软件使用我需要良好备份的数据库,包括事务日志记录。我通过在 my.ini 文件中设置log-bin=expire_logs_days=打开了二进制日志记录。这会将这些日志保存在该驱动器上的 MySQL 数据文件夹中。如果我丢失了驱动器,我就会丢失我的日志,并且它们对我的备份没有任何好处。

我已经找到了在 Linux 机器上重新定位这些日志的各种建议,但是尝试使用在 log-bin 语句中包含路径的相同想法是行不通的。在将 Linux“翻译”到 Windows 时,我尝试过“翻转”斜杠、添加引号和其他常见的尝试。

我创建了一个映射到外部位置的驱动器以使这更容易,并且我尝试使用 \server\folder 路径语句以及 z:\ 路径语句。

任何帮助将不胜感激。

4

4 回答 4

1

如果您在 my.ini 文件的 [mysqld] 部分中进行了更改,那么您应该没问题。正确的路径命名约定应如下所示log-bin="C:/yourfilepathname/logs"。由于您仍然遇到问题,请检查以确保mysql 有权写入您指定要写入的日志文件的目录。

另一种检查这是否是问题的方法,当您尝试停止并启动 mysql 服务器时转到您的 .err 日志文件,它会告诉您一些类似无权写入该目录的信息。

另外,我会注意到其中的日志 bin 文件本身不是备份。您需要从服务器获取整个目录的 mysqldump 或快照,最好是从主生产服务器的从属服务器。

于 2015-02-27T18:42:18.713 回答
1

确保以文件名结尾。见下文。

log-bin=C:/Program Files/MySQL/MySQL Server 5.6/data/bin.log

于 2018-04-05T10:27:21.733 回答
1

您缺少尾部斜杠。

这是我的 my.ini 中的内容(我使用的是 MariaDB 10.1,但我相信这也适用于您):

[mysqld]
datadir=D:/mysql-data
log-bin=E:/mysql-bin/

当我在 log-bin 设置中省略了斜杠时,我在日志中也遇到了同样的错误,并且服务无法启动。添加斜线后,没有错误,服务启动成功。

我现在看到在 E:\mysql-bin 中创建了文件,例如 .index、.000001。

于 2015-11-04T14:51:33.537 回答
0

实际上这是由于使用了普通的 Windows 反斜杠。而不是 z:\ 使用 z:/ (正斜杠)。此外,如果您不以正斜杠结尾,那么它将使用最后一部分作为文件名。exp:z:/bin-logs/(这将包含名为 .index 和 .000001 的文件) z:/bin-logs/log(这将包含名为 log.index 和 log.000001 的文件)

于 2016-10-06T13:27:16.533 回答