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