====== mysql ====== cd /usr/ports/databases/mysql55-server/ make install clean Создадим конфигурационный файл /usr/local/etc/my.cnf ''Опции для всех клиентов MySQL\\ [client]\\ # Пароль для подключения к БД\\ #password = your_password\\ # Порт на котором висит MySQL\\ port = 3306\\ # Сокет MySQL\\ socket = /tmp/mysql.sock\\ # Опции MySQL-сервера \\ [mysqld]\\ # Порт\\ port = 3306 \\ # Адрес, который будем слушать (если вам не нужно подключаться к\\ # MySQL с других машин, то оставьте здесь 127.0.0.1)\\ bind-address = 127.0.0.1\\ # Где лежит сокет\\ socket = /tmp/mysql.sock\\ # Не использовать средства системных блокировок.\\ skip-locking\\ # Вообще не слушать порты TCP/IP. Это может применяться для большей\\ # безопасности, если все процессы, соединяющиеся с MySQL висят на томже\\ # хосте, что и mysqld. Все взаимодействия с mysqld будут осуществляться\\ # через Unix-сокеты, или именованые каналы.\\ # Заметтьте, что использование этой опции под форточками, без включчения\\ # именованных каналов (используйте опцию "enable-named-pipe") сделает\\ # работу MySQL бесполезной - ибо с mysqld никто не сможет соединиться :)\\ skip-networking\\ # Если Вы используете InnoDB, то закомментируйте эту опцию \\ skip-innodb\\ # С этой опцией MySQL не будет инициализировать библиотеку Berkeley DB\\, # что позволит сэкономить большое количество памяти.\\ skip-bdb\\ # Hекоторое уникальное число между 2 и 2^32-1. Значения server-id должны\\ # быть различными на каждом сервере, участвующем в репликации. Если\\ # значение server-id не определено, оно будет установлено в 1, если\\ # также не определено значение master-host, оно будет установлено в 2.\\ # Обратите внимание, что если значение server-id опущено, то головной\\ # сервер будет отказывать в соединении всем подчиненным серверам, а\\ # подчиненный сервер - отказывать в соединении головному серверу.\\ # Таким образом, опускать установку значения server-id можно лишь в\\ # случае резервного копирования с использованием двоичного журнала.\\ server-id = 1\\ # Раскомментируйте эту опцию, для включения логгирования всех запросов\\ # Заметтьте - тока на время отладки! Потом надо закомментить и\\ # рестартануть MySQL!\\ # Файл должен существовать, с соответствующими правами на него:\\ # touch /var/log/mysql.log\\ # chown mysql:wheel /var/log/mysql.log\\ # chmod 640 /var/log/mysql.log\\ log = /var/log/mysql.log\\ # Указывает местоположение двоичного журнала обновлений,\\ # в котором будут вестись записи.\\ #log-bin=mysql-bin\\ [mysqldump]\\ # Если задан этот параметр, то обработчик таблицы при выполнении\\ # удаления не будет объединять индексы - в некоторых случаях это\\ # может ускорить данную операцию\\ quick\\ [mysql]\\ # Отключает автоматическое рехеширование. rehash следует использовать\\ # для получения хеша таблиц и полей. Это обеспечивает более\\ # быстрый старт mysql.\\ no-auto-rehash\\ # Опция, которую рекомендуется раскомментить начинающим :)\\ # Разрешает выполнять только операции UPDATE и DELETE, используя ключи.\\ #safe-updates\\ [isamchk]\\ key_buffer = 8M \\ sort_buffer_size = 8M\\ [myisamchk]\\ key_buffer = 8M\\ sort_buffer_size = 8M\\ [mysqlhotcopy]\\ # Допускать простой длительностью interactive_timeout секунд (вместо\\ # wait_timeout секунд) перед закрытием данного соединения.\\ interactive-timeout'' Задаем пароль root для mysql. mysqladmin -u root password '123qaz' Создадим базу данных create database mydb; Проверим факт создания show databases; выберем ее для использования use mydb; Создадим пользователя create user 'student'@'localhost' identified by 'studentpass'; Дадим все права на использование базы пользователю stusent. grant all privileges on mydb.* to 'student'@'localhost'; Создадим в ней таблицу со следующими графами: name -имя surname-фамилия phone - телефон sex — пол Для упрощения задачи все столбцы таблицы будут содержать символьные данные форматов char и varchar. create table contacts (name varchar(20), surname varchar(20), phone varchar(20) , sex char(1) ); Этим запросом мы создали таблицу contacts в базе данных mydb. Можем посмотреть структуру созданной таблицы: show columns from contacts; Теперь заполним таблицу данными. Для этого создадим запрос к базе данных, который вставит в нашу таблицу данные о конкретном человеке. insert into contacts Values('Ivan','Ivanov','(495)12345678','m'); Добавим в таблицу таким же образом еще несколько записей. Теперь можно ввести запрос на выборку информации из таблицы. Выберем всю информацию из таблицы contacts: select * from contacts; По результатам выборки в моем случае можно заметить ошибку – пол в записи Svetlana установлен как «m». Исправим эту ошибку, обновив запись таблицы. update contacts set sex='f' where name='Svetlana'; Снова сделаем полную выборку и увидим, что запись изменилась. Попробуем найти в таблице только мужчин: select * from contacts where sex ='m'; Сделаем резервную копию БД mysqldump -u root -p mydb > mydb.sql удалим все таблицы восстановим из бэкапа mysql -u root -p mydb < mydb.sql ====== PostgreSQL ====== cd /usr/ports/databases/postgresql84-server make install clean пароль пользователю passwd pgsql меняем домашнюю директорию chpass pgsql директория для базы данных # mkdir /data/pgsql/data меняем права доступа # chown -R pgsql:pgsql /data/pgsql/ # chmod -R 750 /data/pgsql/ добавляем в /etc/rc.conf строчки для загрузки postgresql postgresql_enable="YES" postgresql_data="/data/pgsql/data/" postgresql_class="postgres" su pgsql $ /usr/local/etc/rc.d/postgresql start psql template1 alter user pgsql with password '12345'; create user puser; alter user puser with password '1234'; alter user postgres with createdb; create user puser; alter user puser with password '1234'; alter user postgres with createdb; и меняем тип авторизации в файле /data/pgsql/data/pg_hba.conf - отключаем IPv6 – комментируем строчку #host all all ::1/128 trust - менем trust на password в строчках # "local" is for Unix domain socket connections only local all all password # IPv4 local connections: host all all 127.0.0.1/32 password теперь запускаем обратно postgesql # su pgsql $ /usr/local/etc/rc.d/postgresql start начальная установка закончилась, теперь если необходимо – можно создать базу данных для пользователя puser – pdata # su pgsql $ psql -U puser template1 password: template1=# create database pdata template=template0 with encoding='KOI8'; вводим пароль для пользователя puser (он у нас ’1234′) если необходимо востановить дамп предыдущей бд – шаблон: (psql -a имя_базы имя_пользователя < дамп_базы >out 2>&1) пример( где pdata.sql файл с дампом бд): $ psql -a pdata puser < pdata.sql >out 2>&1 и смотрим ошибки $ grep -i erro out Часть информации с сайта http://www.lissyara.su/