Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Windows Platform Restrictions

2.3.6 Windows 平台限制

在 Windows 平台上使用 MySQL 时,以下限制适用:

  • 进程内存

    在 Windows 32 位平台上,不能默认使用超过 2GB 的 RAM 在单个进程中,包括 MySQL。这是因为 Windows 32 位的物理地址限制为 4GB,且 Windows 的默认设置将虚拟地址空间分配给内核(2GB)和应用程序(2GB)。

    某些 Windows 版本有一个在启动时设置来启用更大的应用程序,或者可以使用 64 位 Windows 版本来使用超过 2GB 的内存。

  • 文件系统别名

    使用 MyISAM 表时,不能在 Windows 中使用别名将数据文件链接到另一个卷,然后链接回 MySQL datadir 位置。

    这项功能通常用于将数据和索引文件移到 RAID 或其他高速解决方案中。

  • 有限的端口数量

    Windows 系统有大约 4,000 个端口可用于客户端连接,并且在客户端连接关闭后,端口可能需要 2-4 分钟才能重用。在客户端频繁连接到服务器并断开的情况下,可能会使用完所有可用端口。如果发生这种情况,MySQL 服务器可能会出现不响应的情况,即使它仍在运行。其他应用程序也可能占用端口,从而减少 MySQL 可用的端口数量。

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

  • DATA DIRECTORYINDEX DIRECTORY

    在 Windows 平台上,DATA DIRECTORY take CREATE TABLE 语句的子句仅支持 InnoDB 表,详见 Section 17.6.1.2, “Creating Tables Externally”。对于 MyISAM 和其他存储引擎,DATA DIRECTORYINDEX DIRECTORY 子句在 Windows 和其他平台上都将被忽略,因为它们不支持 realpath() 调用。

  • DROP DATABASE

    不能删除正在使用的数据库。

  • 大小写不敏感名称

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

  • 目录和文件名

    在Windows上,MySQL Server仅支持与当前ANSI代码页兼容的目录和文件名。例如,在西方locale(代码页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)字符,您可以使用以下工作-around:

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

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