• Nenhum resultado encontrado

Verificando Assinatura Usando RPM

2.6 Notas espec´ificas para os Sistemas Operacionais

2.6.4 Notas BSD

Esta se¸c˜ao fornece informa¸c˜ao para os v´arios tipos de BSD, assim como a vers˜ao espec´ifica para eles.

2.6.4.1 Notas FreeBSD

FreeBSD 4.x ou mais novo ´e recomendado para executa¸c˜ao do MySQL uma vez que o pacote thread ´e muito mais integrado.

A mais f´acil e portanto a forma preferida para instal´a-lo ´e usar as portas mysql-server e mysql-client dispon´iveis em http://www.freebsd.org.

Usando-as vocˆe obtem:

Um MySQL funcional, com todas as otimiza¸c˜oes conhecidas para trabalhar na sua vers˜ao habilitada do FreeBSD.

Configura¸c˜ao e constru¸c˜ao autom´atica.

Scripts de inicializa¸c˜ao instalados em /usr/local/etc/rc.d.

Habilidade para ver quais arquivos est˜ao instalados com pkg info -L. E para remover todos com pkg delete se vocˆe n˜ao quiser mais o MySQL na m´aquina.

E recomendado que vocˆe utilize MIT-pthreads no FreeBSD 2.x e threads nativas nas Vers˜oes´ 3 e superiores. ´E poss´ivel executar com threads nativas em algumas vers˜oes antigas (2.2.x) mas vocˆe pode encontrar problemas ao finalizar omysqld.

Infelizmente algumas chamadas de fun¸c˜oes no FreeBSD ainda n˜ao s˜ao totalmente seguras com threads, principalmente a fun¸c˜ao gethostbyname(), que ´e usada pelo MySQL para converter nomes de m´aquinas em endere¸cos IPs. Sob certas circunstˆancias, o processo mysqldir´a criar repentinamente um carga de CPU de 100% e ficar´a sem resposta. Se vocˆe se deparar com isto, tente iniciar o MySQL usando a op¸c˜ao--skip-name-resolve.

Alternativamente, vocˆe pode ligar o MySQL no FreeBSD 4.x com a biblioteca Linux-Threads, que evita uns poucos problemas que a implementa¸c˜ao da thread nativa do FreeBSD tem. Para uma compara¸c˜ao muito boa do LinuxThreads vs. threads nativas dˆe uma ol-hada no artigo "FreeBSD or Linux for your MySQL Server?" de Jeremy Zawodny em http://jeremy.zawodny.com/blog/archives/000697.html

Os problemas conhecidos usando LinuxThreads na FreeBSD s˜ao:

wait_timeoutn˜ao est´a funcionando (provavemente problema de manipula¸c˜ao do signal em FreeBSD/LinuxThreads). Isto deveria ter sido corrigido no FreeBSD 5.0. O sintome

´a que conex˜oes persistentes podem se manter porum longotempo sem serem fechadas.

O ‘Makefile’ do MySQL necessita o GNU make (gmake) para funcionar. Se vocˆe deseja compilar o MySQL, antes vocˆe precisar´a instalar o GNU make.

Tenha certeza que sua configura¸c˜ao de resolu¸c˜ao de nomes esteja correta. De outra forma vocˆe vai ter atrasos na resolu¸c˜ao ou falhas quando conectar aomysqld.

Tenha certeza que a entrada localhost no arquivo ‘/etc/hosts’ esteja correta (de outra forma vocˆe ir´a ter problemas conectando ao banco de dados). O arquivo ‘/etc/hosts’ deve iniciar com a linha:

127.0.0.1 localhost localhost.seu.dominio

O modo recomendado de compilar e instalar o MySQL no FreeBSD com gcc (2.95.2 e acima)

´e:

CC=gcc CFLAGS="-O2 -fno-strength-reduce" \

CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions -felide-constructors \ -fno-strength-reduce" \

./configure --prefix=/usr/local/mysql --enable-assembler gmake

gmake install

./scripts/mysql_install_db cd /usr/local/mysql

./bin/mysqld_safe &

Se vocˆe percber que o configure usar´a pthreads, vocˆe de ler as notas sobre MIT-pthreads. Veja Se¸c˜ao 2.3.6 [MIT-pthreads], P´agina 106.

Se omake installn˜ao puder encontrar ‘/usr/include/pthreads’, ´e porque oconfigure n˜ao detectou que vocˆe precisava de MIT-pthreads. Isto ´e corrigido executando estes coman-dos:

shell> rm config.cache

shell> ./configure --with-mit-threads

O FreeBSD ´e tamb´em conhecido por ter um limite muito baixo para o manipulador de arquivos. Veja Se¸c˜ao A.2.17 [Not enough file handles], P´agina 917. Descomente a se¸c˜ao ulimit -n no mysqld safe ou aumente os limites para o usu´ariomysqldno /etc/login.conf (e reconstrua-o com cap mkdb /etc/login.conf). Tamb´em tenha certeza que vocˆe configurou a classe apropriada para este usu´ario no arquivo de senhas (password) se vocˆe n˜ao estiver usando o padr˜ao (use: chpass nome usuario mysqld). Veja Se¸c˜ao 4.8.2 [mysqld_safe], P´agina 332.

Se vocˆe tiver muita mem´oria vocˆe deve considerar em reconstruir o Kernel para permitir o MySQL de usar mais de 512M de RAM. Dˆe uma olhada naop¸c~ao MAXDSIZ na arquivo de configura¸c˜ao LINT para maiores informa¸c˜oes.

Se vocˆe tiver problemas com a data atual no MySQL, configurar a vari´avelTZprovavelmente ajudar´a. Veja Apˆendice E [Environment variables], P´agina 1083.

Para obter um sistema seguro e est´avel vocˆe deve usar somente kernels FreeBSD que estejam marcados com-STABLE.

2.6.4.2 Notas NetBSD

Para compilar no NetBSD vocˆe precisa do GNU make. De outra forma o compilador que-braria quando o maketentasse executar lint em arquivos C++.

2.6.4.3 Notas OpenBSD

No OpenBSD Vers˜ao 2.5, vocˆe pode compilar o MySQL com threads nativas com as seguintes op¸c˜oes:

CFLAGS=-pthread CXXFLAGS=-pthread ./configure --with-mit-threads=no

2.6.4.4 Notas OpenBSD 2.8

Nossos usu´arios relataram que o OpenBSD 2.8 tem um bug nas threads que causa problemas com o MySQL. Os desenvolvedores do OpenBSD j´a corrigiram o problema, mas em 25 de Janeiro de 2001 a corre¸c˜ao foi dispon´ivel apenas no ramo “-current”. Os sintomas deste bug nas threads s˜ao: resposta lenta, alta carga, alto uso de CPU e quedas do servidor.

Se vocˆe obter um erro como Error in accept:: Bad file descriptor ou erro 9 ao ten-tar abrir tabelas ou diret´orios, o problema ´e provavelmente que vocˆe n˜ao alocou mem´oria suficiente para os descritores de arquivo do MySQL.

Neste caso tente iniciar o mysqld_safecomoroot com as seguintes op¸c˜oes:

shell> mysqld_safe --user=mysql --open-files-limit=2048 &

2.6.4.5 Notas BSDI Vers˜ ao 2.x

Se vocˆe obter o seguinte erro quando estiver compilando o MySQL, seu valorulimitpara mem´oria virtual ´e muito baixo:

item_func.h: In method ‘Item_func_ge::Item_func_ge(const Item_func_ge &)’:

item_func.h:28: virtual memory exhausted make[2]: *** [item_func.o] Error 1

Tente usarulimit -v 80000e executar omakenovamente. Se isto n˜ao funcionar e vocˆe es-tiver usando obash, tente trocar paracshoush; alguns usu´arios BSDI relataram problemas com bashe ulimit.

Se vocˆe utiliza gcc, vocˆe pode tamb´em ter de usar a op¸c˜ao --with-low-memory para o configure estar apto a compilar o ‘sql_yacc.cc’.

Se vocˆe tiver problemas com a data atual no MySQL, configurar a vari´avelTZprovavelmente ajudar´a. Veja Apˆendice E [Environment variables], P´agina 1083.

2.6.4.6 Notas BSD/OS Vers˜ ao 3.x

Atualize para BSD/OS Vers˜ao 3.1. Se isto n˜ao for poss´ivel, instale BSDIpatch M300-038.

Use o seguinte comando quando configurar o MySQL:

shell> env CXX=shlicc++ CC=shlicc2 \ ./configure \

--prefix=/usr/local/mysql \ --localstatedir=/var/mysql \ --without-perl \

--with-unix-socket-path=/var/mysql/mysql.sock O comeando seguinte tamb´em funciona:

shell> env CC=gcc CXX=gcc CXXFLAGS=-O3 \ ./configure \

--prefix=/usr/local/mysql \

--with-unix-socket-path=/var/mysql/mysql.sock

Vocˆe pode alterar as localiza¸c˜oes dos diret´orios se vocˆe desejar, ou apenas usar os padr˜oes n˜ao especificando nenhuma localiza¸c˜ao.

Se vocˆe tiver problemas com performance sob alta carga, tente usar a op¸c˜ao --skip-thread-priorityparamysqld! Isto ir´a executar todas as threads com a mesma prioridade; no BSDI vers˜ao 3.1, isto fornece melhor performance (pelo menos at´e o BSDI corrigir seu organizador de threads).

Se vocˆe obter o errovirtual memory exhaustedenquanto estiver compilando, deve tentar usar ulimit -v 80000 e executar make novamente. Se isto n˜ao funcionar e vocˆe estiver usandobash, tente trocar paracshoush; alguns usu´arios BSDI relataram problemas com bash e ulimit.

2.6.4.7 Notas BSD/OS Vers˜ ao 4.x

O BSDI Vers˜ao 4.x tem alguns bugs relacionados `as threads. Se vocˆe deseja usar o MySQL nesta vers˜ao, vocˆe deve instalar todas as corre¸c˜oes relacionadas `as threads. Pelo menos a M400-23 deve estar instalada.

Em alguns sistemas BSDI vers˜ao 4.x, vocˆe pode ter problemas com bibliotecas compartil-hadas. O sintoma ´e que vocˆe n˜ao pode executar nenhum programa cliente, por exemplo, mysqladmin. Neste caso vocˆe precisa reconfigurar o MySQL, para ele n˜ao usar bibliotecas compartilhadas, com a op¸c˜ao --disable-shared.

Alguns clientes tiveram problemas no BSDI 4.0.1 que o bin´ario do mysqld n˜ao conseguia abrir tabelas depois de um tempo em funcionamento. Isto ´e porque alguns bugs relaciona-dos a biblioteca/sistema fazem com que o mysqld altere o diret´orio atual sem nenhuma informa¸c˜ao!

A corre¸c˜ao ´e atualizar para a 3.23.34 ou depois de executar configure remova a linha

$define HAVE_REALPATH de config.hantes de executar o make.

Perceba que com isso vocˆe n˜ao pode fazer um link simb´olico de um diret´orio de banco de dados para outro diret´orio ou fazer um link simb´olico a uma tabela para outro banco de dados no BSDI! (Criar um link simb´olico para outro disco funciona).

No documento 1 Informa¸c˜ oes Gerais . . . . 1 (páginas 183-186)