Mostrando entradas 321 para 330
« Anterior 10 Mais recentes entradas
Displaying posts with tag: MySQL (reset)
Formatar data no MySQL usando date format

Fala galera, hoje vamos falar sobre como formatar datas no MySQL.
Para este tutorial, estou usando o mysql server 5.5
Basicamente o que você precisa saber e utilizar a função DATE_FORMAT do mysql
vamos criar uma tabela e popular ela com algumas datas:

CREATE TABLE IF NOT EXISTS `dates` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `dates` (`id`, `date`) VALUES
(1, '2012-10-17 13:39:55'),
(2, '2012-10-09 09:23:11'),
(3, '2012-08-24 16:47:07');

Beleza? então agora vamos restaurar esse valores e exibi-los de forma correta:

SELECT id, DATE_FORMAT( `date` , '%d/%c/%Y %H:%i:%s' ) AS `date` FROM `dates`

Fácil NE? …

[Leia mais]
CHAR ou VARCHAR? Que tipo de campo escolher no MySQL?

Ambos os tipos de campo “texto” podem ser definidos com um comprimento máximo no MySQL. A principal diferença entre os dois tipos de campos é que o CHAR sempre armazenará o texto com o tamanho fixo, mesmo que o “texto” seja menor do que o tamanho máximo especificado na criação do campo. Neste caso, o próprio SGBD do MySQL irá usar espaços a direita do “texto” preenchendo o campo até a quantidade máxima especificada em sua criação. Note, que esses espaços serão removidos quando você recuperar os dados a armazenados.

Por outro lado, “textos” armazenadas em uma coluna VARCHAR exigem apenas o tamanho do “texto” armazenado. Portanto, a palavra “ivo” em uma coluna VARCHAR(10) irá requerer quatro bytes de espaço (o comprimento do “texto” mais 1), enquanto em uma coluna CHAR(10), a mesma palavra exigirá 10 bytes de …

[Leia mais]
Oracle irá descontinuar o MySQL

Vários blogs “especializados” no Brasil e no mundo estão noticiando que a Oracle está fechando o código fonte o MySQL, e, tirando funcionalidades que ajudam desenvolvedores externos (terceiros) a desenvolver o que chamamos de “plugins” e/ou “storage engines”. Algumas coisas […] ↓ Read the rest of this entry...

Tipos de Campos no MySQL, saiba como escolher o tipo correto

Este post tem o objetivo de ajudar o desenvolvedor na escolha adequada do tipo de campo que deverá utilizar no banco MySQL para persistir seus dados.

O desenvolvedor inexperiente costuma confundir bastante os tipos de campo da linguagem utilizada (PHP por exemplo) com os tipos que o banco pode armazenar. Um exemplo clássico dessa confusão é o booleano que é automaticamente convertido de true para 1 e false para 0 (zero).  Além disso, há o clássico erro de armazenamento de CPF em campo numérico o que faz com que todos os zeros a esquerda se percam.

Portanto coloco abaixo a tabela com os campos do MySQL para que sirva de um guia de implementação do banco de dados de sua aplicação.

Lembro ainda que antes de mais nada você deve identificar qual o tipo de variável que irá armazenar: número, texto, binário, data,  lista ou combinação destes. Em seguida estimar o tamanho do campo e se será …

[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]
Mostrando entradas 321 para 330
« Anterior 10 Mais recentes entradas