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]
keybuffer = 8M
sortbuffer_size = 8M
[myisamchk]
keybuffer = 8M
sortbuffer_size = 8M
[mysqlhotcopy]
# Допускать простой длительностью interactivetimeout секунд (вместо
# waittimeout секунд) перед закрытием данного соединения.
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
cd /usr/ports/databases/postgresql84-server
make install clean
пароль пользователю
passwd pgsql
меняем домашнюю директорию
chpass 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
local all all password
host all all 127.0.0.1/32 password
теперь запускаем обратно postgesql
$ /usr/local/etc/rc.d/postgresql start
начальная установка закончилась, теперь если необходимо – можно создать базу данных для пользователя puser – pdata
$ 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/