Spec-Zone.ru › MySQL 9.2

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

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

  • Память процесса

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

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

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

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

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

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

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

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

  • DATA DIRECTORY и INDEX DIRECTORY

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

  • DROP DATABASE

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

  • Имена, не зависящие от регистра

    Имена файлов в Windows не чувствительны к регистру, поэтому имена баз данных и таблиц MySQL также не чувствительны к регистру в Windows. Единственное ограничение заключается в том, что имена баз данных и таблиц должны быть указаны с одинаковым регистром в данном операторе. См. Раздел 11.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-9.2-en/windows-restrictions.html

Spec-Zone.ru

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