Comandos do Linux e Unix: Sistema; Processos; Sistema de Arquivos; Rede; SSH SCP; VPN com SSH; RSYNC; SUDO; Arquivos Encriptados; Partições Encriptadas; Certificados SSL; CVS; SVN; Comando Úteis; Instalar Software; Converter Mídia; Impressão; Banco de Dados; Quota de Disco; Shells; Scripting; Programação

Comando Databases Linux

PostgreSQL

Alterar senha do root ou de um usuário (ou username)

# psql -d template1 -U pgsql
    > alter user pgsql with password 'pgsql_password';  # Utilize username ao invés de "pgsql"

Cria usuário e database

Os comandos createuser, dropuser, createdb e dropdb são atalhos convenientes equivalentes aos comandos do SQL. O novo usuário é bob com base de dados bobdb ; utilize a base de dados do super usuário como root com o pgsql:

# createuser -U pgsql -P bob         # -P pedirá por senhar
    # createdb -U pgsql -O bob bobdb     # nova bobdb é propriedade de bob
    # dropdb bobdb                       # Exclui a base de dados bobdb
    # dropuser bob                       # Exclui o usuário bob

O mecanismo de autenticação da base de dados geral é configurado em pg_hba.conf

Conceder acesso remoto

O arquivo $PGSQL_DATA_D/postgresql.conf especifica em endereço a vinculá-lo. Tipicamente listen_addresses = '*' para Postgres 8.x.
O arquivo $PGSQL_DATA_D/pg_hba.conf define o controle de acesso. Exemplos:

# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK          METHOD
    host    bobdb       bob        212.117.81.42     255.255.255.255   password
    host    all         all        0.0.0.0/0                           password

Fazer backup e restaurar

Os backups e restaurações são feitos com o usuário user pgsql ou postgres. Fazer backup e restaurar uma única base de dados:

# pg_dump --clean dbname > dbname_sql.dump
    # psql dbname < dbname_sql.dump

Fazer backup e restorar toda a base de dados (incluindo usuários):

# pg_dumpall --clean > full.dump
    # psql -f full.dump postgres

Nesse caso a restauração é iniciada com a base de dados postgres que é melhor quando recarregar um cluster vazio.

MySQL

Alterar senha root ou do usuário do mysql

Método 1

# /etc/init.d/mysql stop
    ou
    # killall mysqld
    # mysqld --skip-grant-tables
    # mysqladmin -u root password 'newpasswd'
    # /etc/init.d/mysql start

Método 2

# mysql -u root mysql
    mysql> UPDATE USER SET PASSWORD=PASSWORD("newpassword") where user='root';
    mysql> FLUSH PRIVILEGES;                           # Utilize username ao invés do "root"
    mysql> quit

Cria usuário e base de dados (veja MySQL dochttp://dev.mysql.com/doc/refman/5.1/en/adding-users.html)

# mysql -u root mysql
    mysql> CREATE USER 'bob'@'localhost' IDENTIFIED BY 'pwd'; # cria somente um usuário
    mysql> CREATE DATABASE bobdb;
    mysql> GRANT ALL ON *.* TO 'bob'@'%' IDENTIFIED BY 'pwd'; # Utilize localhost ao inves de %
                                                       # para limitar o acesso a rede
    mysql> DROP DATABASE bobdb;                        # Exclui base de dados
    mysql> DROP USER bob;                              # Exclui usuário
    mysql> DELETE FROM mysql.user WHERE user='bob and host='hostname'; # Alt. command
    mysql> FLUSH PRIVILEGES;

Conceder acesso remoro

Acesso remoto é tipicamente permitido para uma base de dados, e não todas as bases de dados. O arquivo /etc/my.cnf contem o endereço IP a ser vinculado. (No FreeBSD my.cnf não criada por padrão, copie um arquivo .cnf de /usr/local/share/mysql para /usr/local/etc/my.cnf) Tipicamente comente a linha bind-address = out.

# mysql -u root mysql
    mysql> GRANT ALL ON bobdb.* TO bob@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD';
    mysql> REVOKE GRANT OPTION ON foo.* FROM bar@'xxx.xxx.xxx.xxx';
    mysql> FLUSH PRIVILEGES;                  # Utilize 'hostname' ou também '%' para total acesso

realizar backup e restaurar

Backup e restaurar uma única base de dados:

# mysqldump -u root -psecret --add-drop-database dbname > dbname_sql.dump
    # mysql -u root -psecret -D dbname < dbname_sql.dump

Realizar backup e restaurar toda a base de dados:

# mysqldump -u root -psecret --add-drop-database --all-databases > full.dump
    # mysql -u root -psecret < full.dump

Aqui em “secret” é a senha root do mysql, não há espaço depois do -p. Quando a opção -p é utilizada sosinha (w/o password), a seha é perguntada no prompt de comando.

SQLite

SQLitehttp://www.sqlite.org é uma base de dados SQL pequena e poderosa independente, sem servidor (serverless), e sem configuração (zero-configuration).

desepejar (Dump) e restaurar

Pode ser útil despejar e restaura uma base de dados SQLite. Por exemplo, você pode editar o arquivo dump para alterar um atributo de coluna ou tipe e depois restaurar a base de dados. Isso é mais fácil do que bagunçar com os comandos do SQL. Utilize o comando sqlite3 para uma base de dados 3.x.

# sqlite database.db .dump > dump.sql              # dump
    # sqlite database.db < dump.sql                    # restaura

Converter a base de dados do 2.x para a base de dados do 3.x

sqlite database_v2.db .dump | sqlite3 database_v3.db

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *