segunda-feira, 3 de fevereiro de 2014

Comandos básicos para manipular o servidor de banco de dados MySQL



INTRODUÇÃO

Esse artigo visa mostrar alguns comandos uteis e essenciais para a administração de um servidor de banco de dados MySQL.



DESENVOLVIMENTO

Logar no servidor de banco de dados MySQL
Serve para conectarmos ao servidor via programa cliente como a interface em linha de comando que vem na instalação do servidor MySQL, driver JDBC (linguagem Java), módulo MySQL dentro do PHP para poder fazer a conexão com o servidor e outros clientes de diversas linguagens e plataformas. Nesse caso, estamos supondo que o usuário tem o nome “root” e senha “123456”. Observação: Esse comando fará o usuário entrar no ambiente em console do MySQL.

mysql -–user=root --password=123456;


Mostrar todos os databases
Serve para mostrar todos os databases (banco de dados em si) do servidor de banco de dados MySQL. Útil para verificar se um determinado database está contido no servidor ou será necessário criá-lo.

show databases;


Criar um database
Serve para criar um database no caso de não existir dentro do servidor MySQL. Dentro desse database, estará contido todas as tabelas e informações necessárias para configurar os relacionamentos e administrar esse database. Cada database é isolado do outro, de modo que cada database tem o seu próprio conjunto de tabelas e outras informações pertinentes.

create database novo_database;


Selecionar um database para uso.
Serve para selecionar um database para a partir desse podermos manipular o nosso banco de dados com comandos SQL como select, insert, update, etc.

use nome_database;


Exportando banco de dados
Serve para fazer backup de um banco que está dentro do servidor de banco de dados e que será inutilizado. O arquivo gerado, contém todos os dados e as estruturas (tabelas, relacionamentos, etc) para poder ser importando em outro servidor. Observação: Rodar esse comando fora do ambiente MySQL.

mysqldump -uroot -psenha seu_database > Arquivo.sql;


Importando banco de dados
Serve para carregar o novo servidor de banco de dados com os dados e as estruturas vindos de um banco de dados em um servidor antigo ou que será descontinuado. Importante, o database informado no comando deve existir no servidor destino (que receberá os dados). Nesse comando, temos o uso do servidor de ip “127.0.0.1” que é o servidor local, caso o servidor esteja localizado em outra máquina (host), fornecer o ip apropriado. Além disso, temos o usuário “root” e senha “123456”, com o database “meu_database” e o arquivo SQL “Arquivo.sql” com todos os comandos necessários para refazer todas as estruturas (tabelas, relacionamentos) e dados (registros, linhas) do banco que foi exportado nesse arquivo. Observação: Rodar esse comando fora do ambiente MySQL.

mysql -h127.0.0.1 -uroot -p123456 meu_database < Arquivo.sql;


Verificando todos os usuários cadastros no servidor
Serve para verificar os usuários cadastrados no servidor. Lembrando que o servidor MySQL usa a sua própria estrutura (servidor de banco de dados) para se auto-administrar. Isso significa que existem tabelas para administrar o próprio servidor. Da mesma maneira, outros fornecedores como a Oracle, também usa o seu próprio banco de dados para se auto-administrar também.
O MySQL possui um database chamado “mysql” que contém todas as tabelas de administração do servidor. E uma dessas tabelas, como a tabela “user”, armazena todos os usuários que podem acessar o servidor, pois toda a comunicação com servidor, envolve o uso de uma conta de usuário/senha/roles. O termo “roles” está mais relacionado a funcionalidades do servidor de banco de dados que o usuário tem acesso ou não tem acesso.

use mysql;

select User from user;


Criando usuário para acessar o servidor
Serve para termos um usuário com senha para qualquer cliente poder-se conectar no servidor de banco de dados. Cria o usuário 'meu_usuario' com senha '1' no servidor MySQL. Lembrando de usar usuário root com privilégios suficientes para essa tarefa, caso contrário, não podemos criar outros usuários. Geralmente, esse usuário “root” é configurado na instalação do servidor.

use mysql;

CREATE USER 'meu_usuario'@'%'
IDENTIFIED BY '1';


Dando privilégios para o usuário acessar o servidor
Sem privilégios, o usuário não poderá fazer nada no servidor, depois da conexão (login).
No MySQL, podemos segmentar os privilégios de acesso, de maneira que um usuário pode executar determinados comandos como select, insert e update e outros usuários pode criar tabelas e apagá-las, por exemplo. Mas nesse artigo, vamos dar privilégios totais para fins educativos e para testes de acesso. Depois disso, quando for criar algum usuário, ai sim pode fazer a segmentação de privilégios, dependendo de cada usuário em questão.

GRANT ALL PRIVILEGES ON*.* TO 'meu_usuario'@'%' WITH GRANT OPTION;



CONCLUSÕES

Esse artigo mostrou alguns comandos essenciais e que são muito usados na manipulação de dados no MySQL. Frequentemente, teremos que fazer backup, migrar servidor MySQL de uma máquina (host) para outra, etc.



REFERÊNCIAS