Displaying posts with tag: MySQL (reset)
MySQL 5.7 – Mudanças: Instalação e Segurança

Diversas mudanças vieram com esta nova versão do SGBD, principalmente no que diz respeito da gestão de usuários e configurações de segurança que vem para solucionar alguns problemas que muitos DBA tinham antes.

Instalação

Uma das mudanças é na hora da instalação. Considerando que usuários sem privilégios administrativos no nível do sistema operacional não têm acesso a determinados arquivo de log – especificamente acesso de leitura ao arquivo de log de erros do MySQL, que inicialmente se encontra em /var/log – após fazer a instalação do servidor de bancos de dados, o arquivo .mysql_secret não será mais gerado no diretório /home do usuário efetivo da instalação do MySQL.

Após a instalação, basta iniciar o serviço. Ao abrir o arquivo de log, verá um evento parecido com este:

[Warning] A temporary password is generated for root@localhost: 4RT_l.h7*p

 Após, …

[Leia mais]
MySQL 5.7 – Mudanças: Instalação e Segurança

Diversas mudanças vieram com esta nova versão do SGBD, principalmente no que diz respeito da gestão de usuários e configurações de segurança que vem para solucionar alguns problemas que muitos DBA tinham antes.

Instalação

Uma das mudanças é na hora da instalação. Considerando que usuários sem privilégios administrativos no nível do sistema operacional não têm acesso a determinados arquivo de log – especificamente acesso de leitura ao arquivo de log de erros do MySQL, que inicialmente se encontra em /var/log – após fazer a instalação do servidor de bancos de dados, o arquivo .mysql_secret não será mais gerado no diretório /home do usuário efetivo da instalação do MySQL.

Após a instalação, basta iniciar o serviço. Ao abrir o arquivo de log, verá um evento parecido com este:

[Warning] A temporary password is generated for root@localhost: 4RT_l.h7*p

 Após, …

[Leia mais]
Incorrect datetime value – convertendo para timestamp

Fala pessoal.
Hoje eu passei por um problema que em um primeiro momento parecia claramente um bug. Mas olhando um pouco melhor para ele, fez todo sentido.

Eu tenho uma tabela, que aqui vou chamar de t1. Essa tabela tem um campo usando datetime. Durante um projeto de normalização do banco, estamos trocando alguns campos de datetime para timestamp.
Quando eu tentei converter a tabela eu recebi o seguinte erro:

mysql> show create table t1;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table                                                                              |
+-------+-------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `date` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | …
[Leia mais]
Incorrect datetime value – convertendo para timestamp

Fala pessoal.
Hoje eu passei por um problema que em um primeiro momento parecia claramente um bug. Mas olhando um pouco melhor para ele, fez todo sentido.

Eu tenho uma tabela, que aqui vou chamar de t1. Essa tabela tem um campo usando datetime. Durante um projeto de normalização do banco, estamos trocando alguns campos de datetime para timestamp.
Quando eu tentei converter a tabela eu recebi o seguinte erro:

mysql> show create table t1;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table                                                                              |
+-------+-------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `date` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | …
[Leia mais]
Criando um Lamp com seu Docker

Bastante pessoas me pediram para criar uma documentação sobre como configurar um LAMP (Linux, Apache, Mysql e PHP) com o Docker.

Para esse artigo, usaremos o Docker e Docker-compose, mas não entremos nos detalhes básicos sobre seu uso. Caso ainda não sabia usar essas ferramentas, apresento os links abaixo para aprender as ferramentas citadas:

Para configurar um LAMP, faremos o uso de um ambiente com dois containers.

Crie uma pasta para seu projeto e dentro dessa pasta crie um arquivo docker-compose.yml com o seguinte conteúdo:

web:
image: tutum/apache-php …
[Leia mais]
Desenvolvendo uma aplicação web com Lumen e MySQL

O Lumen é um novo microframework PHP desenvolvido por Taylor Otwell, o mesmo autor do famoso framework Laravel. Eu quis lhe dar uma chance e estou aqui para compartilhar as minhas experiências. Não sou um especialista em Lumen (ainda), mas acho que uma das melhores características desse framework é que ele torna realmente muito fácil iniciar um novo projeto. Então, para provar isso, vamos agora construir um aplicativo totalmente funcional suportado por um banco de dados MySQL em menos de 30 minutos. Você está pronto para começar?

Uma frase motivacional diária

Nosso aplicativo deve ser bastante simples, mas eu gostaria também de fazer algo útil. Sou um grande fã de citações motivacionais, e se …

[Leia mais]
Forçando transação vitima de rollback em deadlock

Se você utiliza uma Storage Engine que suporta transações, você provavelmente já enfrentou ou ouviu falar de deadlock's.

Na Documentação do MySQL podemos ver:
“Always be prepared to re-issue a transaction if it fails due to deadlock. Deadlocks are not dangerous. Just try again.”
“Sempre esteja preparado para re-executar uma transação se ela falhar por causa de deadlock. Deadlocks não são perigosos. Apenas re-execute a transação.”

Na empresa em que trabalho, temos um importante processo que de vez em quando falha por causa de deadlock. Decidi então melhorar este processo e fazer o que a documentação diz (re-executar a transação).
Para fazer isso, Eu queria poder reproduzir o scenario do deadlock e a transação vitima do rollback teria que ser a do processo em questão.

[Leia mais]
Trabalhando com o INFORMATION_SCHEMA

Olá pessoal!

Hoje eu vou falar um pouco sobre o INFORMATION_SCHEMA e as informações contidas nesta base de dados.

O que é o INFORMATION_SCHEMA?

O INFORMATION_SCHEMA é um banco de dados somente leitura que fornece acesso aos METADADOS (metadata) do servidor. Os metadados são dados sobre os dados, tais como o nome de uma base ou de uma tabela, o tipo de dados de uma tabela, ou privilégios de acesso. Outros termos que às vezes são usados para estas informações são: data dictionary e system catalog. É o banco de dados de informações, informações sobre todos os outros bancos de dados que o servidor MySQL mantém. Dentro do INFORMATION_SCHEMA existem várias tabelas que são somente leitura, não são tabelas de base, não existem arquivos associados a elas. Além disso, não há nenhum diretório de banco de dados com esse nome.

Embora você possa selecionar o INFORMATION_SCHEMA como banco de …

[Leia mais]
Trabalhando com o INFORMATION_SCHEMA

Olá pessoal!

Hoje eu vou falar um pouco sobre o INFORMATION_SCHEMA e as informações contidas nesta base de dados.

O que é o INFORMATION_SCHEMA?

O INFORMATION_SCHEMA é um banco de dados somente leitura que fornece acesso aos METADADOS (metadata) do servidor. Os metadados são dados sobre os dados, tais como o nome de uma base ou de uma tabela, o tipo de dados de uma tabela, ou privilégios de acesso. Outros termos que às vezes são usados para estas informações são: data dictionary e system catalog. É o banco de dados de informações, informações sobre todos os outros bancos de dados que o servidor MySQL mantém. Dentro do INFORMATION_SCHEMA existem várias tabelas que são somente leitura, não são tabelas de base, não existem arquivos associados a elas. Além disso, não há nenhum diretório de banco de dados com esse nome.

Embora você possa selecionar o INFORMATION_SCHEMA como banco de …

[Leia mais]
MySQL + JSON da casamento SIM!

Hoje vamos falar um pouco sobre um assunto muito desejado e esperado, tanto por desenvolvedores quanto por DBAs. O MySQL suporta armazenar documentos JSON???? A resposta é um grande e sonoro SIM!!! Na versão 5.7.8 foi adicionado o data type JSON e com ele você pode armazenar e manipular documentos JSON. Isso significa que posso … Read More →