MySQL (my.cnf)

Configuração otimizada para servidores MySQL super utilizados.

Categoria: Banco de dados

Software: MySQL

[ Hits: 169.051 ]

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 root@'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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts