Little comments about InnoDB

Hello everyone, here we go for a new blog post and now treating about InnoDB inside MySQL 5.5 and as you should now, this new version uses InnoDB Plugin version 1.1 which one has a lot of new adjustable resources. What most caught my attention was the impressed way that users could adjust it to have [...]

Identificadores no MySQL

Olá Pessoal!

Nesse artigo vamos falar sobre Identificadores no MySQL, algo extremanente importante em nosso cotidiano com o banco de dados, mas que por vezes não entendemos bem o funcionamento.

Quando escrevemos requisições SQL,  usamos nomes para nos referirmos a banco de dados e outros objetos contidos neles, tais como tabelas, stored routines, triggers entre outros. Alguns destes objetos têm em seus componentes nomes próprios. Por exemplo, tabelas em suas colunas e índices. Ou ainda é possível criar 'apelidos' (Alias), pelo quais atuam como sinônimos para nomes de tabelas e colunas.

Sintaxe

Identificadores podem estar ou não entre acentos grave (`). Se não estiver deve seguir algumas regras:

  • Ele pode conter qualquer caracter alfanumerico, o (_) e o sinal de dolar $;
  • O identificador pode iniciar com qualquer caracter citado acima, inclusive números. Contudo, é …
[Leia mais]
Replicação em MySQL – Master – Slave

Para explicar a replicação, iremos utilizar o artigo Instalando MySQL 5.5 Parte 2 – Múltiplas instâncias pois iremos precisar de 2 instâncias rodando no nosso servidor.

Iremos ativar os logs binários do nosso servidor, criando um arquivo my_rep.cnf com o seguinte conteúdo:

[mysqld_multi]
mysqld = /mysql/mysql/bin/mysqld_safe
mysqladmin = /mysql/mysql/bin/mysqladmin
[mysqld1]
port = 3306
datadir = /mysql/3306/data
socket = /mysql/3306/mysql.sock
log-error = /mysql/3306/logs/mysqld.log
pid-file = /mysql/3306/mysqld.pid
server_id = 1
#LOGS
log-bin = /mysql/3306/logs/server1_bin.log
log-bin-index = /mysql/3306/logs/server1_log-bin.index
expire_logs_days = 7
binlog-format = MIXED
[mysqld2]
port = 3307
datadir = /mysql/3307/data
socket = /mysql/3307/mysql.sock
log-error = /mysql/3307/logs/mysqld.log
pid-file = …
[Leia mais]
Optimizar consultas em MySQL com query cache

Hoje vamos falar de uma ferramenta bem bacana do MySQL, o query cache.
o query cache salva resultados de SELECT’s já executados e que seus dados brutos não tenham sido alterados tornando assim o tempo de resposta da query muito mais otimizada, pois ele vai buscar da memória e não do disco.
Ele pode trabalhar de 3 maneiras diferentes, no nosso my.ini dentro do grupo [mysqld]:
query_cache_type = 0
Desligado
query_cache_type = 1
Ligado para todas as query’s
query_cache_type = 2
Ligado sobre demanda

Mas qual a melhor maneira de utilizar o query cache?
Tendo em vista que toda a vez que você altera dados em alguma tabela, ele invalida o cache da mesma, o mais indicado é você fazer um mapeamento da frequencia de atualização das tabelas e utilizar o cache para as que não tenham uma frequencia grande a atualização / inserção, para …

[Leia mais]
Backup compactado em MySQL – mysqldump – gzip – bzip2

Hoje vamos falar de um assunto muito importante para administradores de banco de dados, o BACKUP.
Existem várias estratégias de backup, snapshot, dump, dump + binlog, tudo depende da sua necessidade e do tamanho do seu banco de dados. Vou explanar um pouco sobre a ferramenta que o próprio MySQL nos provê, que é o mysqldump, eu indico esta ferramenta para bancos de dados que possuam até 15gb/20gb, mais que isso, a probabilidade de você ter problemas para restaurar um backup e a grande demora, o tornam inviável.
Como o mysqldump funciona? Ele nada mais faz do criar comandos sql para nossa estrutura e dados e os jogar no arquivo indicado.
Primeiramente, vou explicar algumas das mais importantes opções do mysqldump depois, para quem tem o MySQL instalado em um servidor LINUX, vou ensinar como compactar o dump em tempo real.

  • Fazendo backup de

[Leia mais]
Instalando MySQL 5.5 Parte 2 – Multiplas instancias com mysqld_multi

Dando continuidade ao nosso post anterior, hoje vamos subir varias instâncias do MySQL em um mesmo servidor, pratica muito comum hoje em dia, ao invés de criar uma única instância com 100% dos recursos do servidor, se divide a carga de QPS (querys por segundo) entre várias instâncias.
O mysqld_multi irá procurar por grupos [mysqldN] dentro do nosso arquivo de configurações my.cnf, onde N é um numero inteiro que será utilizado posteriormente para referenciarmos qual servidor vamos dar START STOP ou visualizar o REPORT

  1. Já temos a seguinte estrutura em nosso servidor:
    |_3306/
      |_data/
      |_logs/
  2. Vamos criar a estrutura da instância …
[Leia mais]
Instalando MySQL 5.5 Parte 1 – Uma unica instancia

Hoje vou ensinar como instalar um servidor MySQL de forma simples. Com apenas uma unica instância, na segunda parte deste artigo, vou ensinar a instalar varias instâncias do MySQL e controla-las através do mysqld_multi.

Para este tutorial estou utilizando:

VMWare
CentOS 5.6 - 64bits
512MB RAM
40GB DISCO
Instalação sem interface gráfica, somente linha de comando

Dito isso, vamos ao que realmente interessa:

  1. Vamos criar a estrutura de diretórios que vamos trabalhar com nossa instalação do MySQL, para este tutorial vou instalar na raiz da partição:
    cd /
    mkdir mysql
    cd mysql
  2. Vamos ao site de Downloads do MySQL e baixar da ultima versão Community …
[Leia mais]
Recuperar senha root MySQL

Caso você tenha perdido a senha de root do MySQL ou simplesmente não se lembra dela, não se preocupe, segue o passo a passo para você recupera-la:

  1. Parar o serviço do MySQL caso ele esteja de pé “/etc/init.d/mysql stop”
  2. Subir o servidor “skipando” a camada responsável por verificar os privilégios de usuários /usr/bin/mysqld_safe –skip-grant-tables & , lembrando que quando você subir o servidor com esta opção, ele irá aceitar que qualquer usuário se conecte ao banco de dados MySQL com acesso TOTAL a TODOS os bancos de dados então, para inibir que outras pessoas se conectem ao banco no período em que você estará fazendo a manutenção sugiro que você utilize o seguinte comando para subir o banco de dados …
[Leia mais]
Por:

Como faz para chamar a stored procedure no MySQL, passando um parâmetro?

Por: Helton Eduardo Ritter

Cara, sugestão, como o Mysql não tem integridade podia montar um exemplo com duas tabelas e fazer uma Trigger para ele não deixar excluir da tabela se houvese dependências.

parabéns pela coluna!