No Solaris, você deve ter problemas mesmo antes de descompactar
        a distribuição MySQL! O tar do Solaris não
        pode tratar grandes nomes de arquivos, portanto você pode ver
        um erro deste tipo quando descompactar o 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
        Neste caso, você deve usar o GNU tar
        (gtar) para desempacotar a distribuição.
        Você pode encontrar uma cópia pré-compilada para Solaris em
        http://www.mysql.com/downloads/os-solaris.html.
      
As threads nativas da Sun funcionam somente no Solaris 2.5 e superior. Para a versão 2.4 e anteriores, o MySQL irá automaticamente usar MIT-pthreads. See Secção 2.3.6, “Notas MIT-pthreads”.
Se você obter o seguinte erro de configure:
checking for restartable system calls... configure: error can not run test programs while cross compiling
        Isto significa que alguma coisa está errada com a instalação
        de seu compilador! Neste caso você deve atualizar seu
        compilador para uma versão mais nova. Você também pode
        resolver este problema inserindo a seguinte linha no arquivo
        config.cache:
      
ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}
        Se você está usando Solaris em um SPARC, o compilador
        recomendado é o gcc 2.95.2. Você pode
        encontrá-lo em
        http://gcc.gnu.org/.
        Perceba que egcs 1.1.1 e
        gcc 2.8.1 não são estáveis no SPARC!
      
        A linha do configure recomendado quando
        usando 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
Se você possui um ultra sparc, você pode obter 4% a mais de performance adicionando "-mcpu=v8 -Wa,-xarch=v8plusa" para a CFLAGS e CXXFLAGS.
        Se você possui o compilador Sun Workshop (Fortre) 5.3 (ou mais
        novo), você pode executar configure da
        seguinte forma:
      
CC=cc CFLAGS="-Xa -fast -native -xstrconst -mt" \ CXX=CC CXXFLAGS="-noex -mt" \ ./configure --prefix=/usr/local/mysql --enable-assembler
Você pode criar um binário de 64 bits usando o compilador Forte da Sun com os seguintes parâmetros de compilação:
CC=cc CFLAGS="-Xa -fast -native -xstrconst -mt -xarch=v9" \ CXX=CC CXXFLAGS="-noex -mt -xarch=v9" ASFLAGS="-xarch=v9" \ ./configure --prefix=/usr/local/mysql --enable-assembler
        Para criar um binário de 64 bits do Solaris usando
        gcc, e -m64 para
        CFLAGS e CXXFLAGS. Note
        que isto só funciona com o MySQL 4.0 e acima - o MySQL 3.23
        não inclui as modificações exigidas para suportar isto.
      
No benchmark do MySQL, conseguimos um aumento de velocidade de 4% em um UltraSPARC usando o Forte 5.0 no modo 32 bit em comparação com o uso do gcc 3.2 com o parametro -mcpu.
        Se você criar um binário de 64 bits, ele será 4$ mais lento
        que o binário de 32 bits, mas o mysqld
        poderá tratar mais threads e memória.
      
        Se você tiver um problema com fdatasync ou
        sched_yield, você pode corrigir isto
        adicionando LIBS=-lrt para a linha de
        configuração
      
O seguinte paragráfo é relevante somente para compiladores mais antigos que o WorkShop 5.3:
        Você também pode ter que editar o script
        configure para alterar esta linha:
      
#if !defined(__STDC__) || __STDC__ != 1
para isto:
#if !defined(__STDC__)
        Se você ligar __STDC__ com a opção
        -Xc, o compilador Sun não pode compilar com
        o arquivo de cabeçalho pthread.h do
        Solaris. Isto é um bug da Sun (compilador corrompido ou arquivo
        include corrompido).
      
        Se o mysqld emitir a mensagem de erro
        mostrada abaixo quando você executá-lo, você deve tentar
        compilar o MySQL com o compilador Sun sem habilitar a opção
        multi-thread (-mt):
      
libc internal error: _rmutex_unlock: rmutex not held
        Adicione -mt a CFLAGS e
        CXXFLAGS e tente novamente.
      
        Se você estiver usando a versão SFW do gcc (que vem com o
        Solaris 8), você deve adicionar
        /opt/sfw/lib a variável de ambiente
        LD_LIBRARY_PATH antes de executar a
        configuração.
      
        Se você estiver usando o gcc disponível em
        sunfreeware.com, você pode ter muitos
        problemas. Você deve recompilar o gcc e GNU binutils na
        máquina que você o executará para evitar qualquer problema.
      
        Se você obter o seguinte erro quando estiver compilando o MySQL
        com gcc, significa que seu
        gcc não está configurado para sua versão
        de 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'
        A coisa apropriada para fazer neste caso é obter a versão mais
        nova do gcc e compilá-lo com seu compilador
        gcc atual! Ao menos para o Solaris 2.5, a
        maioria das versões binárias de gcc tem
        arquivos inúteis e antigos que irão quebrar todos programas
        que usam threads (e possivelmente outros programas)!
      
        O Solaris não fornece versões estáticas de todas bibliotecas
        de sistema (libpthreads) e
        libdl), portanto você não pode compilar o
        MySQL com --static. Se você tentar fazer isto,
        receberá o erro:
      
ld: fatal: library -ldl: not found ou undefined reference to `dlopen' ou cannot find -lrt
        Se vários processos tentar conectar muito rapidamente ao
        mysqld, você verá este erro no log do
        MySQL:
      
Error in accept: Protocol error
        Você deve tentar iniciar o servidor com a opção
        --set-variable back_log=50 como uma solução
        para esta situação. Note que
        --set-variable=nome=valor e -O
        nome=valor está obsoleto desde o MySQL 4.0. Use
        apenas --back_log=50. See
        Secção 4.1.1, “Opções de Linha de Comando do mysqld”.
      
Se você está ligando seu próprio cliente MySQL, você deve obter o seguinte erro quando tentar executá-lo:
ld.so.1: ./my: fatal: libmysqlclient.so.#: open failed: No such file or directory
O problema pode ser evitado por um dos seguintes métodos:
        Se você tiver problemas com o configure tentando ligar com
        -lz e você não tem a
        zlib instalada, você terá duas opções:
      
Se você deseja usar o protocol de comunição de compactado você precisará obter e instalar a zlib from ftp.gnu.org.
            Configure com --with-named-z-libs=no.
          
        Se você estiver usando o gcc e tiver problemas carregando
        funções UDF no MySQL, tente adicionar
        -lgcc para a linha de ligação para a
        função UDF.
      
        Se você deseja que o MySQL inicie automaticamente, você pode
        copiar support-files/mysql.server para
        /etc/init.d e criar um link simbólico para
        ele, chamado /etc/rc.3.d/S99mysql.server.
      
        Como o Solaris não suporta core files para aplicações
        setuid(), você não pode obter um core file
        do mysqld se você estiver usando a opção
        --user.
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

