Instalando e Configurando o MySQL

O MySQL é um banco de dados vastamente utilizado e com diversos comandos. Se você constantemente precisa instalar e configurá-lo, acompanhe.

Objetivo

Instalar e configurar o MySQL, assim como manipular alguns de seus comandos.

Linux

Sem dúvidas no Linux o apt-get deixa tudo mais fácil, bastanto executar:

sudo apt-get install mysql-client mysql-server libmysqlclient-dev

Red Hat

A distribuição da Red Hat é manipulada via yum:

sudo yum install mysql mysql-server mysql-libs

Mac

No MacOSX também temos um facilitador de instações, chamado Homebrew. Basta instalá-lo de acordo com o site e então executar:

brew install mysql

Configurações

Independente da distribuição, para configurar o MySQL utilizamos os mesmos passos:

mysql_secure_installation

Ao executar o comando acima serão pedidas algumas configurações:

  • Senha, apenas aperte enter;
  • Confirmação da ação (Y);
  • Uma nova senha e sua confirmação;
  • Remoção do usuário anônimo (Y);
  • Desabilitação de acesso remoto como root (Y);
  • Remoção da base de test (Y); e
  • Reload dos privilégios (Y).

Senha

Se você precisar trocar a senha do seu usuário, que digamos ser atualmente ‘secret’, poderá utilizar o mysqladmin:

mysqladmin -u root -p'secret' password 'new_secret';

Repare que a senha atual já é passada inline e junto com o parâmetro -p, não é um erro. Em seguida dizemos qual será a nova senha. Cuidado com os Stalkers!

Acesso

O console do MySQL é acessado passando o usuário e senha:

mysql -u root -p

# password:

Schema

Para criar um schema acesse o console e digite:

create schema my_schema;

Caso queira verificar os já criados:

show databases;

E para se conectar a um schema para manipular as tabelas execute:

use my_schema;

No console do MySQL os comandos terminam com ponto-e-vígula, se você esquecê-lo, será pedido na próxima linha após o enter.

Usuário

Criação + Permissões

Podemos criar nossos usuários com devidas permissões para cada tabela específica em algum schema:

grant all on my_schema.* to 'my_user'@'%' identified by 'secret';

Um usuário my_user foi criado com permissão no schema my_schema para acesso via web %. Com isso podemos acessar a base de dados sem estar no localhost do servidor.

Mas podemos e devemos dar acesso a este usuário via localhost, pois esta é a forma mais comum, já que logamos no servidor e então damos as devidas manutenções:

grant all on my_schema.* to 'my_user'@'localhost' identified by 'secret';

Quando dizemos my_schema.* com um asterísco, estamos especificando a permissão para todas as tabelas, mas poderíamos muito bem especificar qual tabela queremos dar o acesso:

grant all on my_schema.table_name to 'my_user'@'localhost' identified by 'secret';

Criação + Sem senha

Se precisar criar um usuário sem senha, omita alguns comandos:

create user 'test'@'localhost';

Listagem

select host, user, password from mysql.user;

Remoção

drop user user_name;

Tabelas

Teremos várias tabelas na base de dados, para listá-las, conecte ao schema e execute:

show tables;

E então podemos executar nosso SELECT, INSERT, UPDATE, DELETE etc.

Backup

Algo bem normal de fazermos em nosso servidor é a ação de backup que não passa de uma linha de comando:

mysqldump -u root -p'my_password' my_schema > my_dump.sql

Restore

O restore é bem simples também:

mysql -u root -p'my_password' my_schema < my_dump.sql

Nossa mudou só a direção da setinha rs… #lol