Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Banco de Dados [Dicas] ( Linux ) !!

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dica Banco de Dados [Dicas] ( Linux ) !!

    Instalando Oracle 10g xE no Ubuntu

    Instalando Oracle 10g xE no Ubuntu
    Olá pessoas,

    Vou começar essa dica falando que todo o processo de instalação seja observado com calma, pois são aquelas mensagens que não percebemos que causam vários problemas.

    Mas vamos lá:

    Recentemente tirei totalmente o Windows da minha máquina para deixá-la rodando com o único sistema operacional que acredito que seja bom. Tenho a distribuição Ubuntu, que é basicamente um novo Debian, e precisei instalar o Oracle na máquina, mesmo com todos me dizendo que Oracle é complicado instalar, que Oracle não é bom para versões que não sejam o Red Hat ou o SuSE ou todo tipo de comentário desanimador que possam imaginar. Mas mesmo assim fui contra todos e com a cara e coragem fui instalar o Oracle na minha máquina um Ubuntu.

    Pessoal, nunca passei tanto desespero para instalar o banco de dados, vocês tem idéia que fiquei 3 semanas contadas até mesmo horas e horas de finais de semana para instalar o Oracle!? Pois é, fiquei tudo isso para descobrir que não tem nenhum segredo e que no Ubuntu é mais fácil do que tirar doce de criança.

    A seguir irei mostrar como funciona.

    Antigamente o site da Oracle recomendava o uso do banco de dados no Windows desde que seja uma máquina extraordinariamente "cara" e Linux desde que seja o Red Hat, mas agora de tanto ouvir reclamações eles colocaram a distribuição Debian (uso o Ubuntu, que é praticamente a mesma coisa).

    Então pessoas do Debian, vamos usar, usar e usar.

    Primeiro passo vamos baixar o Oracle no próprio site deles (obvio né ):

    * Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...


    Nesse site você precisa aceitar a licença de uso (obrigatório) e assim você poderá escolher qual Oracle você quer.

    Escolhi a versão Oracle Database 10g Express Edition (Universal) pois nesse caso é para instalar o banco completo na sua máquina com o suporte a vários idiomas.

    Existe dois arquivos para baixar: "oracle-xe-univ-10.2.0.1-1.0.i386.rpm " e "oracle-xe-universal_10.2.0.1-1.0_i386.deb". Caso você não seja expert em Linux, o melhor e baixar a versão .deb, que faz praticamente tudo sozinho.

    Claro que você precisa se registrar no site da Oracle para ter acesso a downloads e FAQ, mas fica tranqüilo que é free.

    Depois de fazer o download execute ele.

    Dê um clique para ele te mostrar onde e como está instalando os pacotes. Depois abra um terminal e digite o seguinte:

    $ cd /etc/init.d/
    $ ./oracle-xe configure


    Pronto, agora ele pedirá qual porta você vai usar para se conectar, geralmente ele já te mostra um exemplo de porta, mas se não pode usar a "8080".

    Depois ele pede qual e a porta de comunicação, "1521". Depois ele pede para você a senha que usará para root (dba). Sugiro que grave essa senha até na cueca, pois se perdê-la não imagina a dor de cabeça que terá.

    Depois de tudo feito, vá ate a barra de tarefa "aplicação":

    1. Oracle Data Base;
    2. Ir para home page do banco de dados;
    3. Coloque o login de dba """""System""""";
    4. Coloque a senha que você definiu na instalação (cara não me diga que você não lembra);
    5. Pronto, você já esta rodando o Oracle!

    Para executar comandos SQL você pode ter um programa de SGBD ou mesmo um SQLPLUS, que já vem na instalação do Oracle.

    Caso queira o SQLPlus é simples para conectar:

    $ conenct system
    (senha de dba)

    Caso queira conectar com outros usuários e só criá-los pelo home page do banco de dados.

    Abraços ...

    Erro ao conectar no servidor MySQL
    Erro comum:

    ("Host 'xxx' is not allowed to connect to this Mysql Server").

    Este erro acontece quando você tenta conectar ao servidor através de outra máquina cliente (Mysql-Front).

    Para solucionar este problema você deve cadastrar nas tabelas "Db" e "User" o host cliente que irá conectar ao servidor ou colocar o 'host' das tabelas como '%' para permitir acesso de qualquer host.

    Como fazer:

    1) Abra o MySQL no servidor:

    # mysql -u root -p
    Enter password:

    2) Localize as tabelas Db e User (por default encontram-se no DB mysql):

    mysql> USE mysql;

    3) Utilizei o user root por já estar cadastrado!

    mysql> UPDATE db SET host = '%' where user = 'root';
    mysql> UPDATE db SET host = '%' where user = 'root';
    mysql> FLUSH PRIVILEGES;

    Obs:

    a) Esta dica é genérica serve bem para testes! 'OK!', mas para produção deve-se reforçar as políticas de segurança.

    Ou....

    mysql>GRANT <Privilegio> ON <nome_do_banco>|<nome_do_banco>.<nome_tabela> TO <nome_usuário>@<IP_que_deseja_liberar_o acesso> IDENTIFIED BY 'sua_senha';


    mysql> FLUSH PRIVILEGES;

    Exportar banco de dados SQLite para arquivo .sql
    A dica consiste em exportar a estrutura de um banco de dados, como tabelas e dados para um arquivo .sql, sendo muito útil para backup e possíveis troca de SGBD. Dentro do diretório onde está o arquivo .db ou .sqlite, digite:

    # sqlite3 meubanco.db .dump > meubanco.sql

    Pronto, seu banco foi exportado! Nunca se esqueça que esses comandos devem ser executados como usuário root.

    Dica dentro da ~Dica...

    Se quiser exportar para o MySQL:

    1 - crie o banco:

    # mysql -p
    mysql> create database meubanco;

    2 - no prompt digite o seguinte comando:

    # mysql -h localhost -u root -psenha meubanco > meubanco.sql


    Pronto! É exportado para o MySQL.

    Automatizando o processo de backup do MySQL

    Nessa dica vamos ver como realizar um backup de um banco de dados do MySQLe como automatizar este processo de backup. Vamos partir do princípio quetemos um banco de dados chamado meuBanco, na máquina localhostque é acessado pelo usuário armenio com senha jujuba.

    Então vamos resumir as informações de nosso exemplo:

    Database: meuBanco
    Host: localhost
    Username: armenio
    Password: jujuba

    O programa responsável pela realização de backup do MySQL é o mysqldump,que já vem distribuído junto com o banco de dados. O mysqldump gera um arquivocom comandos SQL que cria o esquema das tabelas de seu banco de dados erestauram os registros das tabelas. Vamos iniciar com um exemplo prático decomo fazer um backup completo de nosso banco de dados:

    $ mysqldump -h localhost -u armenio -pjujuba meuBanco > backup_meuBanco.sql

    Bem simples não, no comando acima podemos perceber claramente que foi geradoum backup de nosso banco no arquivo backup_meuBanco.sql. O mysqldump possuidiversas opções para realização de backup personalizado. Você pode configurá-lopara fazer cópia apenas das estruturas das tabelas, apenas os registros, escolhero tipo de sintaxe dos comandos SQL e afins. Digite "man mysqldump" paramaiores informações.

    Agora que aprendemos a fazer cópia de nosso banco de dados, vamos aprender a automatizar o processo de backup. Criaremos um simples script para realizaro backup e nomear as cópias nomeadas com a data atual.

    Código:
    #!/bin/sh
    # mysqlBackup.sh
    
    DATA=`/bin/date +%Y%m%d`
    
    # NOME armazena o nome do arquivo de backup, neste casoi
    # o diretório é /home/fabio/backup, configure aqui o seu
    # diretório de backup
    NOME="/home/fabio/backup/meuBanco-$DATA.sql"
    
    # variáveis do MySQL
    HOST="localhost"
    USER="armenio"
    PASSWORD="jujuba"
    DATABASE="meuBanco"
    
    mysqldump -h $HOST -u $USER -p$PASSWORD > $NOME
    Uma vez criado o script mysqlBackup.sh, vamos agendar sua execução diáriano cron. Neste exemplo quero que o script seja executado todos os dias àsduas da manhã. Digite:

    crontab -e

    E adicione a linha:

    0 2 * * * /bin/sh /home/fabio/mysqlBackup.sh

    Restaurar um backup é simples, basta você acessar o shell do MySQL e colaro conteúdo do arquivo gerado. Uma das formas de se restaurar um backup éa seguinte:

    mysql -h localhost -u armenio -pjujuba meuBanco < meuBanco-20020924.sql

    Onde meuBanco-20020924.sql é o arquivo com os comandos SQL.

    Atenciosamente,
    Fábio Berbert de Paula

    Permitindo conexão ao banco no PostreSQL 8.3
    Até o PostgreSQL 8.1, que eu usava, para acessar com o uso de senha, essencial para utilização nos programas com segurança, bastava garantir que no arquivo pg_hba.conf (geralmente em /etc/postgresql/8.1/main) existisse a seguinte linha:

    Código:
    #Ipv4 local connections:
    host      all      all        127.0.0.1/32          md5
    Eu estava migrando de servidor, então resolvi fazer um upgrade para a versão 8.3, já que a versão 8.1 não é mais oficialmente suportada pelos desenvolvedores.

    Fiquei tentando fazer funcionar o login do phppgadmin por 2 horas até que desisti.

    Hoje, voltei a tentar, e, por um erro, acabei acertando.

    A sequência correta para funcionar pela primeira vez é a seguinte:

    1. Garantir que a linha correspondente do arquivo pg_hba.conf esteja habilitada:

    Código:
    #Ipv4 local connections:
    host      all      all        127.0.0.1/32          md5
    2. Reiniciar o servidor PostgreSQL:

    (debian com sysvconfig)

    # service postgresql-8.3 stop
    # service postgresql-8.3 start


    (outros - pode variar conforme a distro)

    # /etc/init.d/postgresql-8.3 stop
    # /etc/init.d/postgresql-8.3 start


    3. Mudar para o usuário postgres (não há senha):

    # su postgres

    4. Criar o usuário desejado, onde phppgadmin é o usuário desejado:

    # createuser phppgadmin


    4. Entrar no psql:

    # psql


    5. Definir uma senha para o usuário dentro do psql:

    postgres=# \password phppgadmin

    6. O psql vai pedir a senha e a confirmação.

    Agora é só usar normalmente.

    MySQL: Alterar diretório base de dados

    Amigos do GH, bom dia. Venho com uma dica de como alterar o caminho da base de dados do MySQL. Por exemplo: ter que colocar a base em outro diretório ou partição.

    Diretório padrão: /var/lib/mysql

    # vi /etc/my.cnf

    datadir = [novo_caminho] ex: /mnt/mysql

    Salvar alteração: :wq

    Não se esqueça de dar permissão para o novo diretório do MySQL.

    # chown -R mysql.mysql /mnt/mysql

    Executar o comando para criar nova base de dados:

    # mysql_install_db

    Pronto, agora é só iniciar o MySQL com o comando:

    # mysqld_safe &

    Bom, espero ter ajudado.

    Abraços a todos!

    Lazarus: Banco nativo usando sdfdataset com formato CSV

    Dica para Lazarus: usando o sdfdataset em base de dados nativa, utilizando arquivos de texto (.txt, csv, bat etc).

    Às vezes precisamos criar bases nativas para modelar dados de acordo com uma determinada aplicação. Nesta dica faremos uma pequena demonstração: criaremos uma unidade de cadastro onde cada campo de dado é salvo num arquivo de formato csv (comma separated value).

    Prossiga assim:

    * Em um form, coloque três edits: edit1, edit2 e edit3;
    * Coloque também um botão.


    Obs.: Para cada edit associaremos um campo (que pode ser mostrado para o usuário por labels). Exemplo: para o edit1, colocaremos o label com caption "nome", para o edit2 colocaremos o label com caption "email", para o edit3 colocaremos o label com caption "fone".

    Então criaremos um sistema de cadastro usando o evento onclick do botão. Crie um arquivo *.csv numa pasta de sua preferência.

    Código:
    var arq:tstringlist;
    begin
    arq:=tstringlist.create;
    if not fileexists ('caminho do seu arquivo') then
    begin
    showmessage('Arquivo não existe !');
    end;
    
    if fileexists('caminho do seu arquivo') then
    begin
    arq.loadfromfile('caminho do seu arquivo');
    //lembre se: a vírgula é o delimitador padrão neste exemplo
    arq.add(edit1.text+','+edit2.text+','+edit3.text);//pegou o nome, email e fone
    arq.savetofile('caminho do seu arquivo');
    end;
    arq.free;
    end;
    
    //fazendo uma pesquisa no arquivo que acabamos de criar
    //o código abaixo mostra como usar uma pesquisa usando o
    //sdfdataset ligado ao dbgrid,tendo como delimitador a vírgula
    //pode ser usado no onchange de um edit ou clique de botão
    //lembre-se que no exemplo acima criamos 3 campos (nome, email, fone)
    //e na propriedade schema do sdfdataset deve-se adicionar um campo
    //para cada linha. Exemplo (dentro da propriedade schema):
    //
    //nome
    //email
    //fone
    //
    //coloque mais um edit para fazer pesquisa(edit4)
    //coloque um botão para clicar na hora da pesquisa
    
    procedure TForm1.BitBtn2Click(Sender: TObject);
    var n,nn:integer;
    arq,rel:tstringlist;
    dadoa,dadob:string;
    m:tmemorystream;
    begin
    
    m:=tmemorystream.Create;
    arq:=tstringlist.create;
    rel:=tstringlist.create;
    arq.loadfromfile('caminho do seu arquivo');
    n:=0;
    repeat
    dadoa:=copy(arq.strings[n],1,length(arq.strings[n]));
    nn:=1;
    repeat
    dadob:=copy(dadoa,nn,length(edit4.text));
    if dadob=edit4.text then //se o objeto ou parte é encontrado em qualquer linha do arquivo
    begin
    rel.add(arq.strings[n]); //então é adicionado no resultado
    end;
    inc(nn);
    until(nn=length(dadoa)-length(edit4.text));
    inc(n);
    until(n=arq.count);
    rel.SaveToStream(m); //é salvo para memoria
    sdfdataset1.Active:=false;
    sdfdataset1.LoadFromStream(m);// o sdfdataset carrega da memoria
    sdfdataset1.Active:=true;//o sdfdataset é ativado
    sdfdataset1.First;
    m.SaveToFile(extractfilepath(application.exename)+'REPORTFIN.BAT');//um relatório de pesquisa é salvo
    
    m.free;
    rel.Free;
    arq.Free;
    end.
    //resultado: se usarmos um datasource, um dbgrid e um sdfdataset
    //configurado como este exemplo, poderemos ver o resultado da
    //pesquisa no sdfdataset

    SELECT para paginação no MySQL

    Este tipo consulta SQL pode ser muito útil para quem deseja fazer paginação num site ou mesmo numa aplicação desktop comum, o código é simples e faz uso de duas palavras-chave: LIMIT e OFFSET.

    O código pode ser visto a seguir:

    SELECT * FROM MinhaTabela LIMIT MeuLimite OFFSET MeuOffset

    MeuLimite é o número máximo de linhas que serão selecionadas e MeuOffset é o número de linhas que serão ignoradas antes da primeira ser selecionada.

    Assim, por exemplo, a consulta:

    SELECT * FROM Produtos LIMIT 15 OFFSET 30

    irá selecionar no máximo quinze linhas da tabela produtos a partir da linha de número trinta, mas se a tabela produtos possuir menos que trinta e uma linhas, o resultado será vazio.

    O uso de uma outra consulta para descobrir o número total de linhas que a tabela possui (SELECT COUNT(*) FROM MinhaTabela) também pode ser interessante para o cálculo das demais páginas que podem ser acessadas.

    Por fim, a principal vantagem de se usar este tipo de consulta ao invés de selecionar todos os campos da tabela e depois filtrar é a praticidade, já que selecionamos apenas o que precisamos, evitando que se escreva o código necessário para filtrar os campos realmente necessários. Além disso, apesar de fazermos uma consulta a mais, as queries do tipo "SELECT COUNT(*)" são muito rápidas e não irão afetar a performance do sistema.

    Fonte: vivaoLinux
    Postado Por: RedDeviL
X
Working...
X