П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3500 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6103 раз(а).

Учебник HTML.
Просмотров 3265 раз(а).

Руководство по PHP5.
Просмотров 5486 раз(а).

Хостинг через призму DNS.
Просмотров 4125 раз(а).

Подборка текстов стандартных документов.
Просмотров 55763 раз(а).

Учебник PHP - Самоучитель
Просмотров 3078 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5476 раз(а).

Внешние атаки...
Просмотров 3824 раз(а).

Учебник PHP.
Просмотров 2819 раз(а).

SSI в примерах.
Просмотров 37454 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 2. Установка MySQL
Пред.    След.

2.6. Заметки по операционным системам
2.6.3. Примечания к Solaris

2.6.3.1. Примечания к Solaris 2.7/2.8
2.6.3.2. Примечания к Solaris x86

В системе Solaris проблемы подстерегают вас еще до распаковки дистрибутива MySQL! Программа tar в Solaris "не умеет" работать с длинными именами файлов, поэтому при попытке распаковать MySQL вы можете увидеть сообщение об ошибке, подобное следующему:

x mysql-3.22.12-beta/bench/Results/ATIS-mysql_odbc-NT_4.0-cmp-db2,\
informix,ms-sql,mysql,oracle,solid,sybase, 0 bytes, 0 tape blocks
tar: directory checksum error

В этом случае для распаковки дистрибутива необходимо использовать GNU-версию программы tar (gtar). Скомпилированную версию данной программы для Solaris можно загрузить с http://www.mysql.com/downloads/os-solaris.html.

Собственные потоки Sun работают только начиная с версии Solaris 2.5. Для версии 2.4 и более ранних MySQL автоматически использует MIT-pthreads (see Раздел 2.3.6, «Замечания по потокам MIT-pthreads»).

Следующее сообщение об ошибке конфигурации:

checking for restartable system calls... configure: error can not run test
programs while cross compiling

означает, что имели место какие-то ошибки в установке компилятора! В этом случае необходимо обновить ваш компилятор до более свежей версии. Эту проблему можно также решить, вставив в файл config.cache следующую строку:

ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}

При использовании Solaris на SPARC мы рекомендуем компилятор gcc 2.95.2. Его можно получить по адресу http://gcc.gnu.org/. Отметим, что egcs 1.1.1 и gcc 2.8.1 работают на SPARC ненадежно!

Рекомендуемая строка для configure при использовании gcc 2.95.2:

CC=gcc CFLAGS="-O3" \
CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql --with-low-memory --enable-assembler

Если используется UltraSPARC, то при добавлении строки "-mcpu=v8 -Wa,-xarch=v8plusa" к переменным CFLAGS и CXXFLAGS можно получить повышение производительности на 4%.

При использовании компилятора Sun Fortre версии 5.0 (или выше) можно запускать configure следующим образом:

CCМ CFLAGS="-Xa -fast -xO4 -native -xstrconst -mt" \
CXXМ CXXFLAGS="-noex -xO4 -mt" \
./configure --prefix=/usr/local/mysql --enable-assembler

Можно создать 64-разрядный исполняемый код с помощью:

CCМ CFLAGS="-Xa -fast -native -xstrconst -mt -xarch=v9" \
CXXМ CXXFLAGS="-noex -mt -xarch=v9" ASFLAGS="-xarch=v9" \
./configure --prefix=/usr/local/mysql --enable-assembler

В тестах на производительность MySQL с Sun Fortre 5.0 мы получили 4%-ное ускорение на UltraSPARC по сравнению с gcc 3.2 с опцией -mcpu.

Если вы создаете 64-разрядный код, он на 4% медленнее чем 32-разрядный, но mysqld можно обслуживать больше потоков и использовать больше памяти.

В случае возникновения проблем с fdatasync или sched_yield их можно решить путем добавления LIBS=-lrt к командной строке запуска конфигурирования.

Последующий абзац относится только к более ранним, чем WorkShop 5.3, компиляторам:

Отредактировать скрипт configure можно, заменив строку:

#if !defined(__STDC__) || __STDC__ != 1

строкой:

#if !defined(__STDC__)

При включении __STDC__ с помощью опции -Xc компилятор Sun не сможет откомпилировать программу с файлом pthread.h из системы Solaris. Это ошибка Sun (испорченный компилятор или испорченный включаемый файл).

Если при запуске mysqld выдает приведенное ниже сообщение об ошибке:

libc internal error: _rmutex_unlock: rmutex not held

необходимо попробовать собрать MySQL, используя компилятор Sun с опцией запрещения многопоточности (-mt). Добавьте опцию -mt к CFLAGS и CXXFLAGS и попробуйте запустить mysqld еще раз.

При использовании SFW версии gcc (поставляемой с Solaris 8) необходимо к переменной окружения LD_LIBRARY_PATH перед конфигурированием добавить /opt/sfw/lib.

При работе с gcc от sunfreeware.com может возникнуть множество неприятностей. Во избежание проблем необходимо перекомпилировать gcc и бинарные инструментальные программы GNU в той системе, где вы собираетесь их использовать.

Получение нижеследующей ошибки при компиляции MySQL компилятором gcc означает, что gcc не сконфигурирован под вашу версию Solaris:

shell> gcc -O3 -g -O2 -DDBUG_OFF -o thr_alarm ...
./thr_alarm.c: In function `signal_hand':
./thr_alarm.c:556: too many arguments to function `sigwait'

В этом случае нужно взять самую свежую версию gcc и скомпилировать ее установленным gcc-компилятором! Почти все бинарные версии gcc (по крайней мере для Solaris 2.5) содержат старые, непригодные к использованию включаемые файлы, которые портят все программы, использующие потоки (а возможно, и другие программы)!

В Solaris не обеспечиваются статические версии всех системных библиотек (libpthreads и libdl), поэтому компилировать MySQL с опцией -static нельзя. При попытке такой компиляции вы получите одно из приведенных ниже сообщений об ошибке:

ld: fatal: library -ldl: not found
или
undefined reference to `dlopen'
или
cannot find -lrt

Если слишком много процессов одновременно пытаются установить соединение с mysqld, то в файле протокола MySQL появится следующее сообщение об ошибке:

Error in accept: Protocol error

Для решения этой проблемы можно попытаться запустить сервер с опцией --set-variable back_log=50. Внимание: --set-variable не используется в MySQL 4.0. Просто используйте --back_log=50. See Раздел 4.1.1, «Параметры командной строки mysqld».

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

ld.so.1: ./my: fatal: libmysqlclient.so.#:
open failed: No such file or directory

Проблему можно решить одним из следующих способов:

  • Линковать клиент со следующими опциями (вместо -Lpath): -Wl,r/полный-путь-к-libmysqlclient.so.

  • Скопировать libmysqclient.so в /usr/lib.

  • Перед запуском своего клиента добавить путь к каталогу, в котором находится libmysqclient.so, к переменной окружения LD_RUN_PATH.

Если вы столкнулись с проблемами конфигурирования, пытаясь линковать с опцией -lz и у вас не установлена zlib, существует два варианта:

  • Если вы хотите иметь возможность использовать протокол взаимодействия со сжатием, необходимо получить и установить zlib с ftp.gnu.org.

  • Сконфигурировать с --with-named-z-libs=no.

Если при использовании gcc вы столкнулись с проблемами загрузки UDF-функций в MySQL, попробуйте добавить -lgcc к строке, отвечающей за линкование UDF-функций.

Для того чтобы MySQL-сервер стартовал автоматически, можно скопировать support-files/mysql.server в /etc/init.d и создать на него символическую ссылку /etc/rc3.d/S99mysql.server.

Поскольку Solaris не поддерживает файлы образа памяти для приложений, использующих setuid(), невозможно получить файл образа памяти программы mysqld при использовании опции --user.


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 1. Общая информация Начало Книги Глава 3. Учебное пособие по MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru