MySQL Secure Installation

Ola pessoal!

Quem nunca passou pela dor de cabeça de ajustar os usuários do MySQL após uma instalação? Acaba virando uma tarefa rotineira, caso não tenha feito algum processo automático para ajuste.

Em uma instalação padrão, os usuários do MySQL são criados sem uma senha de acesso, o que é algo critico em relação a segurança. Para quem não conhece, o MySQL oferece um script padrão em sua instalação para a correção deste ‘problema’, que é o mysql_secure_installation.
Continue lendo

Como o MySQL usa a Memória Interna?

Ola pessoal!

Hoje veremos o conceito de como o MySQL trabalha com memória, resumido mas bem objetivo. São conceitos importantes para levarmos dia a dia, seja você um Dev ou DBA.

O MySQL trabalha com o gerenciamento de memória:

Global (instancia):

A memória que é compartilhada com todas as sessões do MySQL, alocada quando o servidor é iniciado e liberada apenas quando o mesmo é desligado.

Sessão:

Como o próprio nome diz, a memória é alocada de maneira dinâmica por cada sessão, podendo ser liberada após o seu termino ou quando a mesma não é necessária.

A alocação é feita em 3 categorias:

Servidor:

Compartilhada com todas as sessões. Um exemplo neste cenário é a utilização do query cache.

Quey Cache: O Query cache salva os resultados de Selects já executadas na memória, fazendo com que o tempo de resposta de consultas repetitivas seja muito mais rápido, pois o MySQL não vai precisar buscar o dado no disco novamente.

Uma vez que é alterado algum dado na tabela de consulta, o hash deste cache será quebrado, evitando assim o retorno de dados divergentes ou desatualizados. O query_cache oferece 3 níveis que podem ser configurados no my.cnf ou my.ini:
Continue lendo

Um pouco mais sobre Views no MySQL

Ola pessoal!

Neste tópico irei detalhar as maneiras de identificar views criadas em sua Base/Servidor, e explicar um pouco sobre itens que considero importante no dia a dia.

Se de inicio for necessário apenas o nome do objeto, execute um show full tables na base:

SHOW FULL TABLES IN basededados WHERE TABLE_TYPE LIKE ‘VIEW’;

snapshot3

Caso queira um retorno completo, efetue uma busca na information_schema.VIEWS, onde esta retorna as propriedades da View junto ao seu código fonte:

snapshot2

Pontos interessantes ao ressaltar:

DEFINER
Continue lendo

SELECT MAX_JOIN_SIZE

Ola pessoal,

Este é um erro comum e polêmico ao mesmo tempo, onde ao efetuar uma consulta é retornada a mensagem:

The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay

Motivo? Esse erro ocorre quando o limite determinado de consulta no MySQL é atingido. ]

Sendo mais direto, a consulta precisa vasculhar mais de x linhas para a sua conclusão, onde o x é definido no próprio MySQL, na variável max_join_size:
Continue lendo

Fixing an Illegal mix of Collation

Ola pessoal,

Ao executar o backup de uma base MySQL ou na execução de uma view, identifiquei diversas vezes o erro:

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_general_ci,IMPLICIT) for operation ‘=’

Existem diversos outros eventos para esta retorno, porém qual o motivo?

Em todos os casos, me deparei com views que faziam consultas entre campos com collations diferentes, impedindo assim a conclusão da query.
Continue lendo

Habilitar slow_query no MySQL 5.6

Yo!

O slow_query armazena as consultas que mais oneram em seu servidor, a partir de um valor pré definido no my.cnf .

Na instalação padrão do MySQL 5.6, este recurso deve ser habilitado, já que as linhas responsáveis estão comentadas no arquivo de configuração do MySQL.

Primeiramente, você pode consultar o status/valor desta variável através da interface do MySQL:

select @@log_slow_queries;

Captura de tela de 2014-08-27 00_16_46

Após a confirmação, acesse o arquivo de configuração do MySQL (my.cnf) no diretório: /etc/mysql/my.cnf , e desmarque o # evitando a linha comentada:
Continue lendo

Data de criação de tabelas MySQL

Yo!

Ter informações sobre a criação de um objeto em sua base de dados pode ser significativo em alguma analise, seja de validação ou para confirmação caso encontre algum erro em sua rotina de trabalho.

No MySQL existe uma forma muito simples de obter estes dados, através da base information_schema. Essa base é muito importante e traz diversos dados importantes, o qual iremos aborta-los com o tempo.
Continue lendo

Instalar MySQL – Ubuntu Linux

Ola, pessoal.

Apesar de você ter a possibilidade de revisar este tema em vários outros sites, não custa nada documentar por aqui 🙂

Veremos neste como instalar o MySQL Server no Ubuntu (Debian Like) através da linha de comando ou o gerenciador de pacotes apt.

Antes de iniciar a instalação, abra o seu terminal e atualize os repositórios da máquina:

Para iniciar a instalação do MySQL, insira o seguinte comando no terminal:
Continue lendo

Permissões no MySQL

Boa noite, pessoal.

Dando continuidade ao último post, veremos agora como atribuir e revogar permissões em cada usuário no MySQL.

Antes de qualquer alteração, é interessante consultar as permissões atuais ao usuário, executando:

show grants for usuario@’modoacesso’;

grants

No momento, o usuário contem apenas a permissão de USAGE, que permite o acesso ao servidor, porém o mesmo não tem a permissão para gerenciar uma base já criada.

Para atribuir uma nova permissão ao usuário, iremos trabalhar com o comando grant, seguindo os critérios:
Continue lendo

Criando usuário no MySQL

Boa noite, pessoal.

Este exemplo é baseado em um ambiente local, onde com uma oportunidade irei disponibilizar o procedimento em um servidor já publicado, porém a lógica é a mesma.

Para adicionar um novo usuário no MySQL, devemos trabalhar com o comando create user, onde são passados os critérios:

– Nome do usuário:
– Permissão de acesso:
– Senha para acesso:

Captura de tela de 2014-06-06 00:16:05

No exemplo acima, as características do usuário foram:

Usuário: sqlparatodos
Permissão de acesso: Somente local (localhost)
Senha: sqlparatodos

Caso seja necessário consultar os usuários que existem no servidor, junto as suas permissões, basta executar a consulta:
Continue lendo