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