Главная > Unix ToolBox > Перевод сборника команд Unix ToolBox. Раздел 18. Databases (Базы данных)

Перевод сборника команд Unix ToolBox. Раздел 18. Databases (Базы данных)

18 Базы данных

18.1 PostgreSQL

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

# 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

18.2 Базы данных MySQL

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

Способ 1

# /etc/init.d/mysql stop
или
# 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'; # Используйте имя "пользователя" вместо "root"
mysql> FLUSH PRIVILEGES;                           
mysql> quit

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

# mysql -u root mysql
mysql> CREATE DATABASE bobdb;                      # Cоздать базу данных bobdb
mysql> GRANT ALL ON *.* TO 'bob'@'%' IDENTIFIED BY 'pwd'; # Используйте localhost вместо % что-бы запретить доступ к базе данных извне
# % - Разрешает сетевой доступ пользователя с любого IP адреса
mysql> DROP DATABASE bobdb;                        # Удалмть базу данных.
mysql> DROP USER bob;                              # Удалить пользователя 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; 

Резевное копирование и восстановление баз данных mysql

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

# 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 будет использована без следеющего за ней пароля, он будет запрошен интерактивно.

18.3 Базы данных 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
Categories: Unix ToolBox Tags:
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.