2.3.6 Windows 平台限制

在 Windows 平台上使用 MySQL 有以下限制:

  • 进程内存

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

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

  • 文件系统别名

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

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

  • 端口数量有限

    Windows 系统有大约 4,000 个端口可供客户端连接使用,端口上的连接关闭后,需要两到四分钟才能重新使用该端口。在客户端以高频率连接和断开服务器的情况下,所有可用端口可能都已用完,然后关闭的端口才重新可用。如果发生这种情况,MySQL 服务器似乎没有响应,即使它正在运行。计算机上运行的其他应用程序也可能使用端口,在这种情况下,MySQL 可用的端口数量较少。

    有关此问题的更多信息,请参阅 error WSAENOBUFS (10055) - Windows Client | Microsoft Learn

  • DATA DIRECTORY和 INDEX DIRECTORY

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

  • DROP DATABASE

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

  • 不区分大小写的名称

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

  • 目录和文件名

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

    <span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-ini"><span style="color:#990055">datadir</span><span style="color:#0077aa"><span style="color:#999999">=</span>"C:/私たちのプロジェクトのデータ"</span></code></span></span></span></span>

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

  • 路径\名分隔符

    Windows 中的路径名组件由 字符分隔 \,该字符也是 MySQL 中的转义字符。如果您使用LOAD DATA或 SELECT ... INTO OUTFILE,请使用包含字符的 Unix 样式文件名 /

    <span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-sql"><span style="color:#a67f59">mysql></span> <span style="color:#0077aa">LOAD</span> <span style="color:#0077aa">DATA</span> <span style="color:#0077aa">INFILE</span> <span style="color:#669900">'C:/tmp/skr.txt'</span> <span style="color:#0077aa">INTO</span> <span style="color:#0077aa">TABLE</span> skr<span style="color:#999999">;</span>
    <span style="color:#a67f59">mysql></span> <span style="color:#0077aa">SELECT</span> <span style="color:#a67f59">*</span> <span style="color:#0077aa">INTO</span> <span style="color:#0077aa">OUTFILE</span> <span style="color:#669900">'C:/tmp/skr.txt'</span> <span style="color:#0077aa">FROM</span> skr<span style="color:#999999">;</span></code></span></span></span></span>

    或者,你必须将\ 角色翻倍:

    <span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-sql"><span style="color:#a67f59">mysql></span> <span style="color:#0077aa">LOAD</span> <span style="color:#0077aa">DATA</span> <span style="color:#0077aa">INFILE</span> <span style="color:#669900">'C:\\tmp\\skr.txt'</span> <span style="color:#0077aa">INTO</span> <span style="color:#0077aa">TABLE</span> skr<span style="color:#999999">;</span>
    <span style="color:#a67f59">mysql></span> <span style="color:#0077aa">SELECT</span> <span style="color:#a67f59">*</span> <span style="color:#0077aa">INTO</span> <span style="color:#0077aa">OUTFILE</span> <span style="color:#669900">'C:\\tmp\\skr.txt'</span> <span style="color:#0077aa">FROM</span> skr<span style="color:#999999">;</span></code></span></span></span></span>
  • 管道问题

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

    当您尝试按如下方式应用二进制日志时,这主要会出现问题:

    <span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-terminal"><span style="color:#a67f59">C:\></span><span style="color:#0077aa"> mysqlbinlog</span> <em>binary_log_file</em> | mysql <span style="color:#990055">--user</span><span style="color:#0077aa"><span style="color:#999999">=</span>root</span></code></span></span></span></span>

    如果您在应用日志时遇到问题并怀疑这是由于^ZCHAR(24)字符引起的,则可以使用以下解决方法:

    <span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-terminal"><span style="color:#a67f59">C:\></span><span style="color:#0077aa"> mysqlbinlog</span> <em>binary_log_file</em> <span style="color:#990055">--result-file</span><span style="color:#0077aa"><span style="color:#999999">=</span>/tmp/bin.sql</span>
    <span style="color:#a67f59">C:\></span><span style="color:#0077aa"> mysql</span> <span style="color:#990055">--user</span><span style="color:#0077aa"><span style="color:#999999">=</span>root</span> <span style="color:#990055">--execute</span> <span style="color:#0077aa">"source /tmp/bin.sql"</span></code></span></span></span></span>

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值