Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Проблемы и распространенные ошибки /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Вопросы, связанные с администрированием - Программирование от RIN.RU
Вопросы, связанные с администрированием



Где MySQL хранит временные файлы


Переменная окружения TMPDIR содержит полное имя каталога, в котором в MySQL хранит временные файлы. Если TMPDIR не установлена, то MySQL использует каталог, заданный в системе по умолчанию (обычно это '/tmp' или '/usr/tmp'). Если файловая система, в которой находится каталог временных файлов, слишком мала, то следует, отредактировав safe_mysqld, присвоить TMPDIR значение, указывающее на каталог в "более просторной" файловой системе! Временный каталог можно также задавать с помощью опции --tmpdir к mysqld.


Все временные файлы MySQL создает как скрытые; таким образом гарантируется, что временные файлы будут удалены, если mysqld умрет. Недостаток использования скрытых файлов в том, что не будут видны большие временные файлы, забирающие место в файловой системе, где расположен каталог временных файлов.


При сортировке (ORDER BY или GROUP BY) MySQL обычно использует один или два временных файла. Максимальный размер требующегося для этого пространства на диске составляет:


(размер сортируемых данных + sizeof(указатель базы данных))
* количество совпавших записей
* 2


sizeof(указатель базы данных) обычно равен 4, но со временем для очень больших таблиц может увеличиться.


Для некоторых запросов SELECT MySQL также создает временные SQL-таблицы. Они не скрытые и имеют имена вида 'SQL_*'.


ALTER TABLE создает временную таблицу в одном каталоге с исходной таблицей.


Как защитить или изменить сокет-файл MySQL '/tmp/mysql.sock'


Если возникают проблемы с тем, что кто угодно может удалить коммуникационный сокет MySQL '/tmp/mysql.sock', то в большинстве версий Unix можно защитить содержимое '/tmp', установив на каталоге "липучий" (sticky) бит. Войдите в систему как пользователь root и выполните следующую команду:


shell> chmod +t /tmp


Это защитит ваш каталог '/tmp': теперь удалять в нем файлы смогут только их владельцы или суперпользователь (root).


Проверить, установлен ли "липучий" (sticky) бит, можно, выполнив ls -ld /tmp. Если последним битом прав является t, то бит установлен.


Изменить путь к каталогу, где MySQL открывает сокет-файл, можно, воспользовавшись одним из следующих способов:


  • Укажите путь в глобальном или локальном файле опций. Например, поместите в '/etc/my.cnf':


    [client]
    socket=path-for-socket-file


    [mysqld]
    socket=path-for-socket-file


    См. раздел Файлы параметров 'my.cnf'.

  • Укажите, где расположен файл, в командной строке safe_mysqld и большинства клиентов с помощью опции --socket=путь-к-файлу-сокета.

  • Укажите путь к сокету в переменной окружения MYSQL_UNIX_PORT.

  • Определите путь с помощью опции конфигурирования --with-unix-socket-path=путь-к-файлу-сокета (см. раздел Типичные опции configure).


Проверить, работает ли сокет, можно следующей командой:


shell> mysqladmin --socket=/path/to/socket version




Проблемы с часовыми поясами


Если есть проблема с тем, что SELECT NOW() возвращает значения GMT, а не местное время, то необходимо установить переменную окружения TZ равной местному часовому поясу. Это должно быть сделано для окружения, в котором работает сервер, например, в safe_mysqld или mysql.server (см. раздел Переменные окружения).

<<<  Назад
 1  2  3 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Как определить, чем вызваны проблемы

Распространенные ошибки при использовании MySQL

Вопросы, связанные с инсталляцией

Проблемы, относящиеся к запросам

Вопросы, связанные с определением таблиц

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь