文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


2.3.6 Windows 平台限制

以下限制适用于在 Windows 平台上使用 MySQL

  • 进程内存

    在 Windows 32 位平台上,默认情况下无法在一个进程中使用超过 2GB 的 RAM,包括 MySQL。这是因为 Windows 32 位的物理地址限制为 4GB,Windows 内部的默认设置是将虚拟地址空间在内核 (2GB) 和用户/应用程序 (2GB) 之间进行划分。

    一些版本的 Windows 具有启动时设置,可以通过减少内核应用程序来启用更大的应用程序。或者,要使用超过 2GB 的内存,请使用 64 位版本的 Windows。

  • 文件系统别名

    使用 MyISAM 表时,您不能在 Windows 链接中使用别名将另一个卷上的数据文件链接到主要 MySQL datadir 位置。

    此功能通常用于将数据和索引文件移动到 RAID 或其他快速解决方案。

  • 有限的端口数量

    Windows 系统大约有 4,000 个端口可用于客户端连接,并且端口上的连接关闭后,需要 2 到 4 分钟才能重新使用该端口。在客户端频繁连接和断开连接到服务器的情况下,所有可用端口都有可能在已关闭端口重新可用之前被使用完毕。如果发生这种情况,MySQL 服务器看起来没有响应,即使它正在运行。端口也可能被机器上运行的其他应用程序使用,在这种情况下,MySQL 可用的端口数量会更少。

    有关此问题的更多信息,请参见 https://support.microsoft.com/kb/196271.

  • DATA DIRECTORYINDEX DIRECTORY

    在 Windows 上,CREATE TABLE 语句的 DATA DIRECTORY 子句仅支持 InnoDB 表,如 第 17.6.1.2 节“在外部创建表” 中所述。对于 MyISAM 和其他存储引擎,在 Windows 和任何其他具有非功能性 realpath() 调用的平台上,CREATE TABLEDATA DIRECTORYINDEX DIRECTORY 子句将被忽略。

  • DROP DATABASE

    您不能删除另一个会话正在使用的数据库。

  • 不区分大小写名称

    Windows 上的文件名不区分大小写,因此 MySQL 数据库和表名在 Windows 上也不区分大小写。唯一的限制是,在给定语句中,数据库和表名必须始终使用相同的大小写。请参见 第 11.2.3 节“标识符大小写敏感性”.

  • 目录和文件名

    在 Windows 上,MySQL 服务器仅支持与当前 ANSI 代码页兼容的目录和文件名。例如,以下日语目录名在西方语言环境(代码页 1252)中不起作用

    datadir="C:/私たちのプロジェクトのデータ"

    相同的限制适用于 SQL 语句中引用的目录和文件名,例如 LOAD DATA 中的数据文件路径名。

  • \ 路径名分隔符字符

    Windows 中的路径名组件由 \ 字符分隔,该字符也是 MySQL 中的转义字符。如果您使用的是 LOAD DATASELECT ... INTO OUTFILE,请使用带有 / 字符的 Unix 风格文件名

    mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;
    mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;

    或者,您必须将 \ 字符加倍

    mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;
    mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
  • 管道问题

    管道无法从 Windows 命令行提示符可靠地工作。如果管道包含字符 ^Z / CHAR(24),Windows 会认为它遇到文件结尾并中止程序。

    这主要是在您尝试按如下方式应用二进制日志时出现的问题

    C:\> mysqlbinlog binary_log_file | mysql --user=root

    如果您在应用日志时遇到问题,并且怀疑是由于 ^Z / CHAR(24) 字符导致的,您可以使用以下解决方法

    C:\> mysqlbinlog binary_log_file --result-file=/tmp/bin.sql
    C:\> mysql --user=root --execute "source /tmp/bin.sql"

    后一个命令还可以可靠地读取可能包含二进制数据的任何 SQL 文件。