Arquivo para MySQL - blog.unifick
Publicado em MySQL	Criptografia de colunas no MySQL – Simples, fácil e objetivo
O MySQL não possui uma função nativa para criptografar uma tabela ou todo o banco de dados, mas ele possui funções nativas para criptografia de colunas.
Criptografia de colunas no MySQL
Ao optar por usar criptografia de colunas no MySQL, você deve ter em mente que isso irá ter um custo no desempenho do seu banco de dados. Criptografia sempre gasta tempo de CPU, seja ele em banco de dados ou em aplicações. Ciente disso, você deve fazer uma analise do banco de dados para levantar as colunas que são sensíveis ao negócio e que realmente necessitam ser criptografadas.
Para criptografar uma coluna sensível de uma tabela (exemplo: email VARCHAR(150) da tabela clientes), primeiro precisamos alterar o tipo da coluna para varbinary(255):
alter table `clientes` modify column email varbinary(255);
Agora, para criptografar esta coluna, execute o comando abaixo:
UPDATE `clientes` SET email = AES_ENCRYPT(email,'chave-para-criptografia');
Pronto, a coluna email está criptografada com o algorítimo de criptografia AES.
Para recuperar os e-mails da tabela clientes de forma descriptografada basta executar o comando abaixo:
SELECT CAST(AES_DECRYPT(email,'chave-para-criptografia') AS char(255)) FROM `clientes`;
Além do algoritmo de criptografia AES o MySQL também possui os algoritmos de criptografia DES, MD5, SHA-1 e SHA-2. Evite usar os algoritmos MD5 e SHA-1, pois esses dois algoritmos de criptografia foram expostos.
Colunas do tipo VARBINARY não podem ser indexadas.
29 de outubro de 2015	1 Resposta
Replicação do MySQL em 10 passos
Configurando replicação do MySQL em 10 passos.
Adicione o código abaixo no my.cnf do servidor MASTER depois da sessão [mysqld]:
log-bin=mysql-bin server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1
Reinicie o serviço do MySQL no servidor MASTER.
Crie um usuário MySQL no servidor MASTER. Use o IP do servidor SLAVE como host a partir de onde o usuário irá se conectar e de a esse usuário o privilégio "REPLICATION SLAVE:
GRANT REPLICATION SLAVE ON *.* TO 'newUser'@'192.168.0.215';
Execute o seguinte comando no prompt de comando do mysql do servidor MASTER:
Este comando irá trancar todas as tabelas permitindo apenas leitura nelas, o que impedirá qualquer modificação nos dados durante a configuração da replicação.
Agora execute o comando abaixo ainda no prompt do servidor MASTER:
Este comando retornará o nome e a sequencia numérica do arquivo de log binário. Precisamos anotar esses valores pois iremos precisar deles no passo 9 na configuração do servidor SLAVE.
Ainda no prompt do servidor MASTER, execute o comando:
Depois de executar este comando, vá para o servidor SLAVE para configurarmos ele.
Adicione o código abaixo no my.cnf do servidor SLAVE depois da sessão [mysqld]:
Reinicie o serviço do MySQL no servidor SLAVE.
Execute o comando abaixo no prompt de comando do mysql no servidor SLAVE:
CHANGE MASTER TO MASTER_HOST='192.168.0.205′, MASTER_USER='newUser', MASTER_PASSWORD='senha',
MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001′, MASTER_LOG_POS=xxxxx, MASTER_CONNECT_RETRY=10;
Explicando os parâmetros.
MASTER_HOST é o IP do servidor MASTER.
MASTER_USER é o usuário que criamos para fazer a replicação lá no passo 3.
MASTER_PASSWORD é a senha que definimos pro usuário da replicação.
MASTER_LOG_FILE é o nome do arquivo que anotamos no passo 5 (se por acaso o banco replicado não contiver todas as informações do banco master, então coloque esta opção como a do exemplo).
MASTER_LOG_POS é a sequencia numérica anotada no passo 5.
Ainda no prompt do servidor SLAVE, execute o comando abaixo para finalizar a configuração:
Pronto! Se tudo deu certo, sua replicação já está configurada e funcionando.
Para verificar o status do servidor SLAVE, você pode executar o comando no prompt de comandos do mysql:
O MySQL possui 3 comandos muito úteis para manutenção de tabelas, são eles o check, optimize e analyze. Veja a seguir para que cada um deles serve.
Valida a integridade das tabelas.
Exemplo: check table_name;
Recupera espaços não usados e refaz os índices. Este comando é muito útil, pois além de refazer todos os índices, o que corrige problemas de índice corrompido, também reorganiza o armazenamento dos índices para não ficar buracos (analogicamente falando, esta reorganização funciona como o desfragmentador de discos do Windows).
Exemplo: optimize table_name;
Refaz e otimiza as estruturas dos índices. Refaz os índices assim como o comando optimize, mas não recupera os espaços não usados. Em contra partida, este comando otimiza as estruturas dos índices, deixando-os ordenados conforme suas definições da criação dos mesmos, o que proporciona um ganho de desempenho nas querys que usam esses índices.
Exemplo: analyze table_name;
15 de outubro de 2015	2 Respostas
Tópicos recentes	Alterando a Logo da Página de Login do WordPress
ComentáriosMarcos de P. Muniz em Imprimindo com PHP na impressora não fiscal Bematech MP-20 MIDécio Rocha em Imprimindo com PHP na impressora não fiscal Bematech MP-20 MIMarcos de P. Muniz em MySQL – Tipos de colunas para armazenamento numéricoPaulo Souza em Como deletar todas as tabelas de um banco de dados MySQLLuis Eduardo em Criptografia de colunas no MySQL – Simples, fácil e objetivoCategorias	Desenvolvimento (39)