MySQL (my.cnf)

Configuração otimizada para servidores MySQL super utilizados.

Categoria: Banco de dados

Software: MySQL

[ Hits: 155.029 ]

Por: Fábio Berbert de Paula


Ralei muito para chegar a este nível ma configuração do MySQL, logo
não poderia deixar de compartilhar essa informação com vocês. Se seu
MySQL está "arreando" o servidor, tente utilizar as variáveis e seus
respectivos valores que estão neste arquivo. Os comentários seguem
no próprio .cnf, mas vale ressaltar que o pulo do gato são as variáveis:
key_buffer, table_cache e max_connections.


[client]
port      = 3306
socket      = /var/run/mysqld/mysqld.sock

[safe_mysqld]
err-log      = /var/log/mysql/mysql.err

[mysqld]
server-id=10
log-bin=/var/log/mysql/mysql-bin.log
binlog-do-db=pop
binlog-ignore-db=mailstats,mysql,pop.bak,radius,radius.bak,test

user      = mysql
pid-file   = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port      = 3306
log      = /var/log/mysql.log
basedir      = /usr
datadir      = /var/lib/mysql
tmpdir      = /tmp
language   = /usr/share/mysql/english
skip-locking

# key-buffer define quanto de memória será armazenado para
# gravar dados de consultas do MySQL. Quanto maior a quantidade
# de memória disponível, melhor será o desempenho do servidor
set-variable    = key_buffer=312M

set-variable    = max_allowed_packet=1M

# table_cache é muito importante, este número deve ser o dobro
# do número definido pela variável max_connections
set-variable    = table_cache=20000

set-variable    = sort_buffer=1M
set-variable    = record_buffer=1M
set-variable    = myisam_sort_buffer_size=64M
set-variable    = thread_cache=8
set-variable    = thread_concurrency=8

# max_connections vai definir quantos sub-processos e 
# consequentemente quantas conexões seu MySQL suportará
# simultaneamente. Por incrível que pareça, quanto maior este
# número, menor será o load do seu server. Tente restringir este
# para um número baixo e você verá que loucura está fazendo
set-variable    = max_connections=10000

set-variable    = net_write_timeout=30
set-variable    = connect_timeout=2
set-variable    = wait_timeout=30

# Read the manual if you want to enable InnoDB!
skip-innodb

[mysqldump]
quick
set-variable   = max_allowed_packet=1M

[mysql]

[isamchk]
set-variable   = key_buffer=64M # era 16M
  


Comentários
[1] Comentário enviado por dol amroth em 05/06/2004 - 02:41h

A sua ajuda vai ser muito útil valeu cara continue mandando informações e compartilhndo sabedoria porque a informação deva ser
passada acima de tudo !!!!!!! I BORN TO BE FREE!!!!!!!

[2] Comentário enviado por mariuu em 16/09/2004 - 14:34h

vlw aee pela ajuda continue colaborando e mandando informações... flw aee

[3] Comentário enviado por ezdn em 19/09/2004 - 16:05h

aee fabio vlw pela ajuda e vê se continua a compartilhar conhecimentos com a galera do site tem muita gente que precisa de uma ajuda como a sua
e este tipo de ajuda sempre é bem vindo vlw.

[4] Comentário enviado por removido em 19/11/2004 - 19:32h

=) ... valeu mesmo irmão, foi de grande ajuda!

[5] Comentário enviado por isaacson em 25/05/2005 - 18:56h

Isto ai cara continui assim, contui nos ajudando, Valeu!!!!!!!1

[6] Comentário enviado por robsonbraga em 17/01/2006 - 12:13h

Valeu, é sempre bom ter dicas de caras que ja passaram pelos problemas para ajudar a resolve-los.

[7] Comentário enviado por osvaldocpd em 12/04/2006 - 16:45h

Bom dia pessoal da lista, estou com um problemão e gostaria que voces me ajudasce, fiz um sistema de controle de estoque em Delphi usando zeus para acessar o mysql acesso no windows maquina local, agora instalei o mysql no Linux mas não consigo acessaro banco de dados, se eu for no linux no prompt consigo acessar o banco, mas não estou conseguindo acessar o banco da estação de trabalho. Estou usando o Zeus para a conexão mas nem imagina como configurar o Zeus e o Mysql para resolver esse problema.
Conto com a ajuda de todos
Um abraço

[8] Comentário enviado por fernandoamador em 12/04/2006 - 19:21h

ótimo artigo...

[9] Comentário enviado por osvaldocpd em 13/04/2006 - 12:12h

Bom dia cara, me dá uma força por favor, instalei o mysql no servidor Linux, gostaria de acessar o mesmo pela estação de trabalho XP, você comhece a configuração que tem que ser feito e se tem que instalar algum aplicativo no XP para acessar o banco ?

[10] Comentário enviado por rafa_doido em 12/05/2006 - 22:55h

kra esse artigo e muito bom vlw
continue nos ajudando pq se vc prescisar estamos sempre aki

[11] Comentário enviado por removido em 14/07/2006 - 10:19h

Tem um negócio bem legal também que ajuda a otimizar o MySQL que é em relação ao número de conexões ativas que estão sendo utilizadas simultâneamente. Um site que tem muitos acessos e muito mysql rodando, pode ser extremamente otimizado com a troca do "mysql_connect" por "mysql_pconnect". Isto faz com que a cada nova conexão, o mysql primeiro verifique se já existe uma conexão com o mesmo login, senha e db ativa, e repassa para este novo apenas o ID. Isso economiza MUITO processamento. Reparem neste tipo de troca usando o comando "SHOW STATUS;" na variável "Max_used_connections" como o número de conexões simultâneas cai consideravelmente...
Me corrijam se eu estiver errado, mas acho que isso vale a pena

[]'s

[12] Comentário enviado por bruno3d em 11/10/2007 - 21:33h

Opa, muito obrigado, so uma duvida posso substituir a configuração original por essa??
porque la ta tudo assim
"sort_buffer=1M"
e nessa configuração ta assim
set-variable = sort_buffer=1M
Muito obrigado e aguardo a resposta

[13] Comentário enviado por marcospaulobomba em 19/10/2007 - 13:12h

galera.. tenha o mysql funcionando normal no linux.. acesso ele normal..
mas quando vow acessar pelo windows ele naum conecta...
vcs podem me ajudar??? tem q estar configurar esse my.cnf para acesso pela rede??? pois local funciona normal.. ?:????

[14] Comentário enviado por matux em 06/12/2007 - 01:00h

Parabéns amigo. Vejo que ainda tem gente que lê os manuais dos desenvolvedores. Muito boa sua iniciativa! Continue assim!!!

[15] Comentário enviado por guidobert em 06/12/2007 - 16:52h

Ajudou-me no aperto ...... obrigado !!!!! força e graça pra ti !

[16] Comentário enviado por phacko em 23/07/2008 - 22:27h

ótimo trabalho! Muito sucesso. ;)
...

[17] Comentário enviado por comfaa em 28/10/2008 - 10:49h

muito bom !!

[18] Comentário enviado por tekton em 23/03/2009 - 23:19h

gostaria de saber como acessar ele via rWindows pois das estações linux eu acesso

[19] Comentário enviado por guidobert em 24/03/2009 - 10:27h

tekton ...... pode dar mais detalhes do que deseja fazer ?

[20] Comentário enviado por marcospaulobomba em 25/03/2009 - 15:51h

tem o lance de permicao maluco... grant all privileges on nomedobanco to [email protected]'ipdamaquina' identified by 'senha'

dai vc vai conseguir acessar se quizer apenas testar no nomedobanco vc coloca *.* dai qualquer coisa posta ai

[21] Comentário enviado por edinhow em 20/05/2009 - 13:43h

muito bom!!! melhorou e muito o desempenho! Orbigado! =]

[22] Comentário enviado por fcandrade2001 em 15/01/2010 - 06:09h

muito bom o seu artigo, porem preciso de uma ajuda para que o desempenho do meu servidor melhore, eu tenho 1 servidor co 8 gb de ram, xeon quad core e 86 estacoes acessando a base de dados mysql, esse servidor é exclusivo para o banco de dados e nada mais, qual seria a melhor configuracao do my.cnf para ele e se nao for pedir muito, o comentario de o porque. O acesso a esse servidor se faz tando na rede local como por internet. Agradeco imensamente a sua ajuda

[23] Comentário enviado por alexhctp em 18/02/2011 - 11:46h

Parabens pela iniciativa. Obrigado por contribuir com esse .conf exelente.

[24] Comentário enviado por camilaalvesk em 28/03/2011 - 10:41h

Olá Fabio, sou iniciante na informática e trabalho muito pouco tempo com o linux . o meu mysql estava funcionando normal, mais quando cheguei hoje ele estava com problema. Fui olhar o arquivo de log e estava com erro bem assim:

Connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

eu não sei o que poder ser!!! Será que você ou o pessoal do vol pode me ajudar????


Desde já agradeço...

[25] Comentário enviado por fabio em 22/09/2011 - 20:27h

Esse conf me salvou novamente um dia desses!

[26] Comentário enviado por pablo.ribeiro em 19/10/2011 - 09:13h

Vou testar, sou iniciante em linux e quero aprender bastante com vocês,

[27] Comentário enviado por marcelloalvess em 12/07/2014 - 12:21h

Excelente, tem um banco muito grande e essa configuração será muito útil.

Abraço

[28] Comentário enviado por moisesmartins em 12/08/2015 - 09:42h

Bom dia Fabio, meu arquivo my.cnf esta bem parecido com o seu porém o meu problema é lentidão na hora de lotar 3500 usuários no banco de dados do MySQL. Para explicar melhor tenho um servidor HP em produção com centOS mais antigo e com a versão do MySQL 5.1.61e, phpMyAdmin - 2.11.11, deu problema em um dos discos do RAID ele esta funcionando, fiz uma outra máquina do zero com o dobro do hardware (memória, processador etc) com o mais atual centOS e MySQL: 5.1.73 e phpMyAdmin - 2.11.11.3, para migrar todos os bancos, mais na fase de teste ao processar a mesma quantidade de lotação de usuários ele leva mais que o dobro do tempo o servidor de produção, no ato da lotação fiz o monitoramento com o htop e mais uma ferramenta New Relic a única coisa a normal foi o o/i do disco que chegou a 98,5 % na hora da lotação. Alguém tem uma ideia de como posso otimizar para que o desempenho do MySQL melhore.

[29] Comentário enviado por aldooliveira em 21/01/2016 - 08:25h

Adorei o script.

[30] Comentário enviado por manueng em 03/02/2017 - 14:46h

entao e a senha como configura parece que nao neste arquivo.


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts