Главная Свежие Последние Лучшие Контактная информация  
 
 


Проблемы и распространенные ошибки » Не найден файл (File not found)
A.2.16 Не найден файл (File not found)
Получение от MySQL ERROR '...' not found (errno: 23), Can't open file: ... (errno: 24), или любой другой ошибки с номером 23 или 24 означает, что для MySQL выделено недостаточно файловых дескрипторов. Можно использовать утилиту perror для получения описания ошибки с определенным номером:

shell> perror 23
File table overflow
shell> perror 24
Too many open files
shell> perror 11
Resource temporarily unavailable

Проблема здесь в том, что mysqld пытается одновременно держать открытыми слишком много файлов. Можно либо указать mysqld не открывать так много файлов одновременно, либо увеличить количество файловых дескрипторов, доступных mysqld.

Чтобы предписать mysqld держать одновременно открытыми меньше файлов, можно уменьшить табличный кэш, задав safe_mysqld опцию -O table_cache=32 (значение по умолчанию 64). Уменьшение значения max_connections также уменьшит количество открытых файлов (по умолчанию значение переменной 90).

Чтобы изменить число доступных mysqld файловых дескрипторов, можно использовать опцию --open-files-limit=# в safe_mysqld или опцию -O open-files-limit=# в mysqld (see section 4.5.6.4 SHOW VARIABLES). Проще всего это сделать путем добавления опции в файл опций (see section 4.1.2 Файлы параметров `my.cnf'). Если используется ранняя версия mysqld, не поддерживающая эту возможность, можно отредактировать скрипт safe_mysqld. В скрипте есть закомментированная строка ulimit -n 256; можно, убрав символ `#', раскомментировать эту строку и, заменив значение 256 другим, повлиять на количество доступных mysqld файловых дескрипторов.

При помощи ulimit (и open-files-limit) можно увеличить количество файловых дескрипторов только до предела, установленного в операционной системе. Существует также "жесткий" предел, который может быть переопределен только при запуске safe_mysqld или mysqld от имени пользователя root (но помните, что в этом случае также следует использовать опцию --user=...). Если необходимо увеличить предел ОС по количеству доступных отдельному процессу файловых дескрипторов, обращайтесь к документации по своей операционной системе.

Обратите внимание: при использовании tcsh ulimit работать не будет! Кроме того, tcsh будет сообщать неверные значения при запросе текущих пределов! В этом случае необходимо запускать safe_mysqld с использованием sh!

Добавить в закладки:

 

теги: shell
 

  Еще статьи
Использование символических ссылок 185
Каким стандартам соответствует MySQL ? 38
Как с нами связаться 116
Транзакционная модель InnoDB 130
Проблемы со сравнением чисел с плавающей точкой 174
 


  Категории
Общая информация 73
Установка MySQL 78
Учебное пособие по MySQL 33
Администрирование баз данных 98
Оптимизация в MySQL 41
Справочник по языку MySQL 75
Типы таблиц MySQL 55
Интерфейсы для MySQL 89
Расширение MySQL 18
Проблемы и распространенные ошибки 33
Привнесенные программы 6
Перенос на другие системы 15
 

  Теги
 

  Лучшее на сайте
Сравнение возможностей MySQL и PostgreSQL 442
Адаптивный хешированный индекс 381
Синтаксис оператора EXPLAIN (получение информации о SELECT) 330
Функции даты и времени 319
mysqlimport, импорт данных из текстовых файлов 316
Основные возможности MySQL 313
Запуск MySQL на Windows NT, 2000 или XP 305
Что представляет собой компания MySQL AB? 299
Типы данных DATETIME, DATE и TIMESTAMP 291
Использование символических ссылок для таблиц 260
 

  Друзья сайта
 

  Интересное
 

 
Использование материалов только при активной гиперссылке "http://sql-book.net"
Copyright 2008 http://sql-book.net Серия сайтов: "Стань умным!".