Spec-Zone.ru › MySQL 5.7

2.3.7 Ограничения платформы Windows

Следующие ограничения применяются к использованию MySQL на платформе Windows:

  • Оперативная память

    На 32-битных платформах Windows по умолчанию невозможно использовать более 2 ГБ оперативной памяти в рамках одного процесса, включая MySQL. Это связано с тем, что физический адресной предел в Windows 32-бит составляет 4 ГБ, а по умолчанию виртуальное адресное пространство разделено между ядром (2 ГБ) и пользователем/приложениями (2 ГБ).

    В некоторых версиях Windows есть возможность во время загрузки изменить настройки для работы с более объемными приложениями, уменьшив размер ядра. В качестве альтернативы, для использования более 2 ГБ, используйте 64-битную версию Windows.

  • Псевдонимы файловой системы

    При использовании MyISAM таблиц, вы не можете использовать псевдонимы в рамках Windows для ссылки на файлы данных на другом томе и затем ссылаться обратно на основное расположение MySQL datadir.

    Эта возможность часто используется для перемещения файлов данных и индексов на RAID или другое быстрое решение, сохраняя основные .frm файлы в стандартном каталоге данных, настроенном с помощью параметра datadir.

  • Ограниченное количество портов

    Системы Windows предоставляют около 4000 портов для подключений клиентов, и после закрытия подключения на порте, требуется от двух до четырех минут, прежде чем порт можно будет повторно использовать. В ситуациях, когда клиенты подключаются и отключаются от сервера с высокой скоростью, возможно, что все доступные порты будут исчерпаны до того, как освободятся закрытые порты. Если это произойдет, сервер MySQL может казаться невосприимчивым, даже если он работает. Порты также могут использоваться другими приложениями, работающими на компьютере, в этом случае количество портов, доступных для MySQL, будет меньше.

    Для получения дополнительной информации об этой проблеме, обратитесь к https://support.microsoft.com/kb/196271.

  • DATA DIRECTORY и INDEX DIRECTORY

    Клауза DATA DIRECTORY инструкции CREATE TABLE поддерживается в Windows только для InnoDB таблиц, как описано в Разделе 14.6.1.2, «Создание таблиц внешним образом». Для MyISAM и других типов хранилищ, клаузы DATA DIRECTORY и INDEX DIRECTORY для CREATE TABLE игнорируются в Windows и на других платформах с нерабочей функцией realpath() вызова.

  • DROP DATABASE

    Невозможно удалить базу данных, которая используется другой сессией.

  • Регистронезависимые имена

    Имена файлов нечувствительны к регистру в Windows, поэтому имена баз данных и таблиц MySQL также нечувствительны к регистру в Windows. Единственное ограничение заключается в том, что имена баз данных и таблиц должны указываться с использованием одного и того же регистра в данном операторе. См. Раздел 9.2.3, «Регистронезависимость идентификаторов».

  • Имена каталогов и файлов

    В Windows сервер MySQL поддерживает только имена каталогов и файлов, совместимые с текущими кодовыми страницами ANSI. Например, следующая японская директория не работает в западной локали (кодовая страница 1252):

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

    То же самое ограничение применяется к именам каталогов и файлов, которые упоминаются в SQL-запросах, например, пути к файлам данных в LOAD DATA.

  • Символ разделителя пути \

    Компоненты пути в Windows разделяются символом \, который также является символом экранирования в MySQL. Если вы используете LOAD DATA или SELECT ... 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 файла, который может содержать двоичные данные.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/windows-restrictions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API