+2

Conceitos rápidos sobre MYSQL - Administração e Utilização

criado por Thiago Ribeiro em 26/05/2004 11:08am
#### Administração ####

Ao terminar de instalar o mysql você precisar colocar uma senha de root para o
próprio, temos varias formas de fazer isso:

! Primeira
shell# mysql -u root mysql
mysql>SET PASSWORD FOR root@localhost=PASSWORD('senha_escolhida_por_voce');

! Segunda
shell# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('senha_escolhida_por_voce')
mysql> WHERE user='root';
mysql> FLUSH PRIVILEGES;

! Terceira
shell# mysqladmin -u root password senha_escolhida_por_voce

Adicionando mais usuarios:
! Adicionar um super usuario
shell# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO zezinho@localhosst
mysql> IDENTIFIED BY 'senha' WITH GRANT OPTION;

!Adicionar um usuario com acesso de administração
shell# mysql -u root -p
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost
mysql> IDENTIFIED BY 'senha' WITH GRANT OPTIONS;

! Adicionar usuario para um dominio
shell# mysql -u root -p
mysql> CREATE DATABASE dominio;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON dominio.*
-> TO zezinho@"%.dominio.com.br"
-> IDENTIFIED BY 'senha';
Exemplos dos tipos de atribuição de conexão:

Host Usuário Descrição do tipo de conexão
'woody.debian.org' zezinho zezinho conectando de woody.debian.org
'woody.debian.org' '' qualquer usuario conectando de woody.debian.org
'%' zezinho zezinho conectando de qualquer host
'%' '' qualquer usuario conectando de qualquer host
'%.debian.org' zezinho zezinho conectando de qualquer host do dominio debian.org
'x.y.%' zezinho zezinho conectando de x.y.net, x.y.com, etc...
'10.10.10.3' zezinho zezinho conectando de host com ip 10.10.10.3
'10.10.10.%' zezinho zezinho conectando de qualquer ip da cladse 10.10.10.X
'10.10.10.0/255.255.255.0' zezinho zezinho conectando de qualquer subnet

Fazendo backup:
! Todos os banco de dados
shell# mysqldump --all-databases -u root -psenha > alldbs.sql

! Apenas de um banco de dados
shell# mysqldump --databases -u root -psenha db1 > db1.sql


Reparando uma tabela:
IMPORTANTE: Faça sempre um backup antes de fazer isso!

! Primeiro estágio - Checando suas tabelas
shell# myisamchk -s *.MYI (se voce tem pouco tempo)
shell# myisamchk -e -s *.MYI (se voce tem bastante tempo)

! Segundo estágio - Recuperação fácil
Irá remover as gravações incorretas e deletar as gravações do arquivo de informações e reconstruir
o arquivo principal. Se a forma abaixo falhar use myisamchk --safe-recorver que é um método mais antigo.
shell# myisamchk -r nome_da_tabela

! Terceiro estágio - Recuperação dificultada
Somente se os primeiros blocos de 16k de seu arquivos estejam corrompidos ou com informações incorretas
utilize isso. Neste caso é necessário criar um outro arquivo. E não se esqueça do backup.
shell# mysql nome_do_banco_dados
mysql> SET AUTOCOMMIT=1;
mysql> TRUNCATE TABLE nome_tabela;
mysql> quit

Se não conseguir usar o TRUNCATE use:
mysql> DELETE FROM nome_tabela;

Volte o backup para o novo arquivo, mais guarde uma copia em caso de não funcionar.
Volte ao estágio 2, que deverá funcionar agora.

No Mysql 4.0.2 você pode usar o REPAIR também.


#### Comandos do mysql, utilização ####

Criar banco de dados:
> CREATE DATABASE nome;

Usar banco de dados criado:
> USE nome_banco_dados;

Mostrar tabelas presentes em um banco de dados:
> SHOW TABLES;

Mostrar bancos de dados criados:
> SHOW DATABASES;

Mostrar estrutura de uma tabela:
> DESCRIBE nome_tabela;

Deletar todos os registros da tabela:
> DELETE FROM nome_tabela;

Deletar um registro da tabela:
> DELETE FROM nome_tabela WHERE campo='informacao';

Alterar tipo do campo da tabela:
> ALTER TABLE nome_tabela CHANGE campo campo TIPO NOT NULL;
ou
> ALTER TABLE nome_tabela MODIFY campo TIPO NOT NULL;

Atualizar registro do banco de dados:
> UPDATE nome_tabela SET campo=info WHERE campo='informacao';

Cadastrar registro no banco de dados:
> INSERT INTO nome_tabela (campos) VALUES (informacoes);

Deletar banco de dados:
> DROP DATABASE nome_banco_dados;

Deletar tabela:
> DROP TABLE nome_tabela;

Renomear tabela:
> RENAME TABLE db1.teste TO db2.cadastro;
Então a tabela teste do banco de dados db1 foi mudada para o banco de dados db2 com o nome de cadastro.

Criar Tabela:
> CREATE TABLE cadastro(campo tipo(tamanho) NOT NULL);

Selecionar todas informacoes:
> SELECT * FROM nome_tabela;

Selecionar por tipo:
> SELECT campo FROM nome_tabela;

Selecionar por ordem e organizacao de campo em maneira decrescente:
> SELECT * FROM nome_tabela ORDER BY campo DESC;

Selecionar os X ultimos valores por ordem de campo:
> SELECT * FROM nome_tabela ORDER BY campo LIMIT 5 DESC;
Onde X pode ser qualquer valor inteiro.

Selecionar uma palavra que comece com um X caracter:
> SELECT * FROM nome_tabela WHERE campo LIKE "X%";
Onde X pode ser qualquer caracter.

Selecionar uma palavra que termine com um X caracter:
> SELECT * FROM nome_table WHERE campo LIKE "%X";
Onde X pode ser qualquer caracter.

Selecionar uma palavra que tenha em qualquer parte do texto:
> SELECT * FROM nome_tabela WHERE campo LIKE "%X%";
Onde X pode ser qualquer caracter.

Selecionar palavras contendo um numero X de caracteres, usa-se o _ :
> SELECT * FROM nome_tabela WHERE campo LIKE "____";
Onde X pode ser qualquer valor inteiro, no exemplo usamos 4 underscore.
Inserindo informações de arquivos na tabela:
Copie o arquivo em extensao .txt separado com tabs para /var/lib/mysql/nome_db.
O arquivo pode ser formatado no Excel ou OpenofficeCalc.
> LOAD DATA LOCAL INFILE "arq.txt" INTO TABLE nome_tabela;
ou
> LOAD DATA INFILE "path/arq.txt" INTO TABLE nome_tabela;


A documentação completa pode ser encontrada no site http://www.mysql.com.

Comentários:

Mostrando 1 - 2 de 2 comentários
Será um ótimo local de consulta... Parabéns
01/06/2004 7:31am (~12 anos atrás)

Poxa legal o artigo com as funcoes do mysql sempre eh bom ter em maos, mesmo que as funcoes mais simples mas sempre eh bom ter algo pra pode analizar!
27/05/2004 7:32am (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)