Оглавление

Базы данных

PostgreSQL

Смена пароля roor или пароля пользователя.

# psql -d template1 -U pgsql
> alter user pgsql with password 'pgsql_password';  # Используйте username вместо "pgsql"

Создание пользователя и базы данных

Команды createuser, dropuser, createdb и dropdb, это эквиваленты SQL команд.

# createuser -U pgsql -P bob         # Создание пользователя bob,-P для ввода пароля.
# createdb -U pgsql -O bob bobdb     # Создать базу данных bobdb, владелец bob
# dropdb bobdb                       # Удалить базу bobdb
# dropuser bob                       # Удалить пользователя bob
Основной механизм авторизации в базе, настраивается в файле pg_hba.conf.

Разрешить удаленный доступ

Файл $PGSQL_DATA_D/postgresql.conf определяет слушающие адреса. Обычно listen_addresses = '*' для Postgres 8.x.

Файл $PGSQL_DATA_D/pg_hba.conf назначает уровни доступа. Пример:

# 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

Резервное копирование и восстановление

Резервное копирование и восстановление делается пользователем pgsql или postgres.

Резервное копирование и восстановление одной базы данных, пример:

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

Резервное копирование и восстановление всех баз(включая пользователей):

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

mysql

Смена пароля roor или пароля пользователя.

Способ 1

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

Способ 2

# mysql -u root mysql
mysql> UPDATE USER SET PASSWORD=PASSWORD("newpassword") where user='root';
mysql> FLUSH PRIVILEGES;                           # Используйте имя "пользователя" вместо "root"
mysql> quit

Создание пользователя и базы данных.

# mysql -u root mysql
mysql> CREATE DATABASE bobdb;                      Cоздать базу данных bobdb
mysql> GRANT ALL ON *.* TO 'bob'@'%' IDENTIFIED BY 'pwd'; # Используйте localhost вместо %
                                                   # Разрешен сетевой доступ
mysql> DROP DATABASE bobdb;                        # Удалмть базу данных.
mysql> DROP USER bob;                              # Удалить пользователя.
mysql> DELETE FROM mysql.user WHERE user='bob and host='hostname'; # Альтернативы
mysql> FLUSH PRIVILEGES;

Разрешить удаленный доступ.

Обычно удаленный доступ разрешен не ко всем базам данных. В файл /etc/my.cnf прописан адрес для слушающего сокета, как правило достаточно раскомментировать строку bind-address =.
# 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;                  

Резевное копирование и восстановление

Работа с одной базой данных:

# mysqldump -u root -psecret --add-drop-database dbname > dbname_sql.dump
# mysql -u root -psecret -D dbname < dbname_sql.dump
Работа со всеми базами данных:
# mysqldump -u root -psecret --add-drop-database --all-databases > full.dump
# mysql -u root -psecret < full.dump
В данном случае "secret", пароль пользователя root для mysql, после опции -p, пробел не ставится. Если опция -p будет использована без следеющего за ней пароля, он будет запрошен интерактивно.

sqlite

SQLite небольшая, мощная, самодостаточная, неконфигурируемая база данных.

Дамп и восстановление

Вам может понадобится сделать дамп и восстановление базы SQLite. Например можно отредактировать файл дампа, поменять атрибуты или типы колонок а затем восстановить базу. Это проще чем ковыряться с SQL командами.
# sqlite database.db .dump > dump.sql              # Дамп
# sqlite database.db < dump.sql                    # Восстановление

Конвертирование 2.x базы в 3.x

sqlite database_v2.db .dump | sqlite3 database_v3.db

Оглавление