Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
сервер_баз_данных [2013/07/04 14:00] 46.231.215.230 создано |
сервер_баз_данных [2013/07/11 20:07] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== mysql ====== | ||
| + | |||
| + | |||
| cd / | cd / | ||
| + | make install clean | ||
| Создадим конфигурационный файл | Создадим конфигурационный файл | ||
| Строка 8: | Строка 12: | ||
| - | | + | '' |
| - | [client] | + | [client]\\ |
| - | # Пароль для подключения к БД | + | # Пароль для подключения к БД\\ |
| - | # | + | # |
| - | # Порт на котором висит MySQL | + | # Порт на котором висит MySQL\\ |
| - | port = 3306 | + | port = 3306\\ |
| - | # Сокет MySQL | + | # Сокет MySQL\\ |
| - | socket | + | socket |
| + | |||
| + | |||
| + | # Опции MySQL-сервера \\ | ||
| + | [mysqld]\\ | ||
| + | # Порт\\ | ||
| + | port = 3306 \\ | ||
| + | # Адрес, который будем слушать (если вам не нужно подключаться к\\ | ||
| + | # MySQL с других машин, то оставьте здесь 127.0.0.1)\\ | ||
| + | bind-address | ||
| + | # Где лежит сокет\\ | ||
| + | socket | ||
| + | # Не использовать средства системных блокировок.\\ | ||
| + | skip-locking\\ | ||
| + | |||
| + | # Вообще не слушать порты TCP/IP. Это может применяться для большей\\ | ||
| + | # безопасности, | ||
| + | # хосте, что и mysqld. Все взаимодействия с mysqld будут осуществляться\\ | ||
| + | # через Unix-сокеты, | ||
| + | # Заметтьте, | ||
| + | # именованных каналов (используйте опцию " | ||
| + | # работу MySQL бесполезной - ибо с mysqld никто не сможет соединиться :)\\ | ||
| + | skip-networking\\ | ||
| + | # Если Вы используете InnoDB, то закомментируйте эту опцию \\ | ||
| + | skip-innodb\\ | ||
| + | # С этой опцией MySQL не будет инициализировать библиотеку Berkeley DB\\, | ||
| + | # что позволит сэкономить большое количество памяти.\\ | ||
| + | skip-bdb\\ | ||
| + | # Hекоторое уникальное число между 2 и 2^32-1. Значения server-id должны\\ | ||
| + | # быть различными на каждом сервере, | ||
| + | # значение server-id не определено, | ||
| + | # также не определено значение master-host, | ||
| + | # Обратите внимание, | ||
| + | # сервер будет отказывать в соединении всем подчиненным серверам, | ||
| + | # подчиненный сервер - отказывать в соединении головному серверу.\\ | ||
| + | # Таким образом, | ||
| + | # случае резервного копирования с использованием двоичного журнала.\\ | ||
| + | server-id | ||
| + | # Раскомментируйте эту опцию, для включения логгирования всех запросов\\ | ||
| + | # Заметтьте - тока на время отладки! Потом надо закомментить и\\ | ||
| + | # рестартануть MySQL!\\ | ||
| + | # Файл должен существовать, | ||
| + | # touch / | ||
| + | # chown mysql:wheel / | ||
| + | # chmod 640 / | ||
| + | log = / | ||
| + | |||
| + | # Указывает местоположение двоичного журнала обновлений, | ||
| + | # в котором будут вестись записи.\\ | ||
| + | # | ||
| + | |||
| + | [mysqldump]\\ | ||
| + | # Если задан этот параметр, | ||
| + | # удаления не будет объединять индексы - в некоторых случаях это\\ | ||
| + | # может ускорить данную операцию\\ | ||
| + | quick\\ | ||
| + | |||
| + | [mysql]\\ | ||
| + | # Отключает автоматическое рехеширование. rehash следует использовать\\ | ||
| + | # для получения хеша таблиц и полей. Это обеспечивает более\\ | ||
| + | # быстрый старт mysql.\\ | ||
| + | no-auto-rehash\\ | ||
| + | # Опция, которую рекомендуется раскомментить начинающим :)\\ | ||
| + | # Разрешает выполнять только операции UPDATE и DELETE, используя ключи.\\ | ||
| + | # | ||
| + | |||
| + | [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 ' | ||
| + | |||
| + | Создадим базу данных | ||
| + | |||
| + | create database mydb; | ||
| + | |||
| + | Проверим факт создания | ||
| + | |||
| + | show databases; | ||
| + | |||
| + | выберем ее для использования | ||
| + | |||
| + | use mydb; | ||
| + | |||
| + | Создадим пользователя | ||
| + | |||
| + | create user ' | ||
| + | |||
| + | Дадим все права на использование базы пользователю stusent. | ||
| + | |||
| + | grant all privileges on mydb.* to ' | ||
| + | |||
| + | |||
| + | Создадим в ней таблицу со следующими графами: | ||
| + | |||
| + | name -имя | ||
| + | |||
| + | surname-фамилия | ||
| + | |||
| + | phone - телефон | ||
| + | |||
| + | sex — пол | ||
| + | |||
| + | Для упрощения задачи все столбцы таблицы будут содержать символьные данные форматов | ||
| + | |||
| + | char и varchar. | ||
| + | |||
| + | create table contacts (name varchar(20), | ||
| + | |||
| + | varchar(20) , sex char(1) ); | ||
| + | |||
| + | |||
| + | Этим запросом мы создали таблицу contacts в базе данных mydb. Можем посмотреть структуру созданной таблицы: | ||
| + | |||
| + | show columns from contacts; | ||
| + | |||
| + | |||
| + | |||
| + | Теперь заполним таблицу данными. Для этого создадим запрос к базе данных, | ||
| + | |||
| + | insert into contacts Values(' | ||
| + | |||
| + | Добавим в таблицу таким же образом еще несколько записей. Теперь можно ввести запрос на | ||
| + | выборку информации из таблицы. | ||
| + | |||
| + | Выберем всю информацию из таблицы contacts: | ||
| + | |||
| + | select * from contacts; | ||
| + | |||
| + | |||
| + | По результатам выборки в моем случае можно заметить ошибку – пол в записи Svetlana | ||
| + | установлен как «m». Исправим эту ошибку, | ||
| + | |||
| + | update contacts set sex=' | ||
| + | |||
| + | Снова сделаем полную выборку и увидим, | ||
| + | таблице только мужчин: | ||
| + | |||
| + | select * from contacts where sex =' | ||
| + | |||
| + | Сделаем резервную копию БД | ||
| + | |||
| + | mysqldump -u root -p mydb > mydb.sql | ||
| + | |||
| + | удалим все таблицы | ||
| + | |||
| + | восстановим из бэкапа | ||
| + | |||
| + | mysql -u root -p mydb < mydb.sql | ||
| + | |||
| + | |||
| + | ====== PostgreSQL ====== | ||
| + | |||
| + | cd / | ||
| + | |||
| + | make install clean | ||
| + | |||
| + | |||
| + | пароль пользователю | ||
| + | |||
| + | passwd pgsql | ||
| + | |||
| + | меняем домашнюю директорию | ||
| + | |||
| + | chpass pgsql | ||
| + | |||
| + | |||
| + | директория для базы данных | ||
| + | |||
| + | # mkdir / | ||
| + | |||
| + | меняем права доступа | ||
| + | |||
| + | # chown -R pgsql:pgsql / | ||
| + | |||
| + | # chmod -R 750 / | ||
| + | |||
| + | добавляем в / | ||
| + | |||
| + | postgresql_enable=" | ||
| + | |||
| + | postgresql_data="/ | ||
| + | |||
| + | postgresql_class=" | ||
| + | |||
| + | |||
| + | su pgsql | ||
| + | $ / | ||
| + | |||
| + | psql template1 | ||
| + | |||
| + | alter user pgsql with password ' | ||
| + | |||
| + | |||
| + | create user puser; | ||
| + | |||
| + | alter user puser with password ' | ||
| + | |||
| + | alter user postgres with createdb; | ||
| + | |||
| + | create user puser; | ||
| + | |||
| + | alter user puser with password ' | ||
| + | |||
| + | alter user postgres with createdb; | ||
| + | |||
| + | |||
| + | и меняем тип авторизации в файле / | ||
| + | |||
| + | - отключаем IPv6 – комментируем строчку | ||
| + | |||
| + | #host all all ::1/128 trust | ||
| + | |||
| + | - менем trust на password в строчках | ||
| + | |||
| + | # " | ||
| + | |||
| + | local all all password | ||
| + | |||
| + | # IPv4 local connections: | ||
| + | |||
| + | host all all 127.0.0.1/ | ||
| + | |||
| + | теперь запускаем обратно postgesql | ||
| + | |||
| + | # su pgsql | ||
| + | |||
| + | $ / | ||
| + | |||
| + | начальная установка закончилась, | ||
| + | |||
| + | # su pgsql | ||
| + | |||
| + | $ psql -U puser template1 | ||
| + | |||
| + | password: | ||
| + | |||
| + | template1=# create database pdata template=template0 with encoding=' | ||
| + | |||
| + | вводим пароль для пользователя puser (он у нас ’1234′) | ||
| + | |||
| + | если необходимо востановить дамп предыдущей бд – шаблон: | ||
| + | (psql -a имя_базы имя_пользователя < дамп_базы >out 2>& | ||
| - | # Опции MySQL-сервера | + | пример( где pdata.sql файл с дампом |
| - | [mysqld] | + | |
| - | # Порт | + | |
| - | port = 3306 | + | |
| - | # Адрес, который будем слушать (если вам не нужно | + | |
| - | # MySQL с других | + | |
| - | bind-address | + | |
| - | # Где лежит сокет | + | |
| - | socket | + | |
| - | # Не использовать средства системных блокировок. | + | |
| - | skip-locking | + | |
| - | # Вообще не слушать порты TCP/IP. Это может применяться для большей | + | $ psql -a pdata puser < pdata.sql > |
| - | # безопасности, | + | |
| - | # хосте, что и mysqld. Все взаимодействия с mysqld будут осуществляться | + | |
| - | # через Unix-сокеты, | + | |
| - | # Заметтьте, | + | |
| - | # именованных каналов (используйте опцию " | + | |
| - | # работу MySQL бесполезной - ибо с mysqld никто не сможет соединиться :) | + | |
| - | skip-networking | + | |
| - | # Если Вы используете InnoDB, то закомментируйте эту опцию | + | |
| - | skip-innodb | + | |
| - | # С этой опцией MySQL не будет инициализировать библиотеку Berkeley DB, | + | |
| - | # что позволит сэкономить большое количество памяти. | + | |
| - | skip-bdb | + | |
| - | # Hекоторое уникальное число между | + | |
| - | # быть различными на каждом сервере, | + | |
| - | # значение server-id не определено, | + | |
| - | # также не определено значение master-host, | + | |
| - | # Обратите внимание, | + | |
| - | # сервер будет отказывать в соединении всем подчиненным серверам, | + | |
| - | # подчиненный сервер - отказывать в соединении головному серверу. | + | |
| - | # Таким образом, | + | |
| - | # случае резервного копирования с использованием двоичного журнала. | + | |
| - | server-id | + | |
| - | # Раскомментируйте эту опцию, для включения логгирования всех запросов | + | |
| - | # Заметтьте - тока на время отладки! Потом надо закомментить и | + | |
| - | # рестартануть MySQL! | + | |
| - | # Файл должен существовать, | + | |
| - | # touch / | + | |
| - | # chown mysql:wheel / | + | |
| - | # chmod 640 / | + | |
| - | log = / | + | |
| - | # Указывает | + | и смотрим ошибки |
| - | # в котором будут вестись записи. | + | |
| - | # | + | |
| - | [mysqldump] | + | $ grep -i erro out |
| - | # Если задан этот параметр, | + | |
| - | # удаления не будет объединять индексы | + | |
| - | # может ускорить данную операцию | + | |
| - | quick | + | |
| - | [mysql] | ||
| - | # Отключает автоматическое рехеширование. rehash следует использовать | ||
| - | # для получения хеша таблиц и полей. Это обеспечивает более | ||
| - | # быстрый старт mysql. | ||
| - | no-auto-rehash | ||
| - | # Опция, которую рекомендуется раскомментить начинающим :) | ||
| - | # Разрешает выполнять только операции UPDATE и DELETE, используя ключи. | ||
| - | # | ||
| - | [isamchk] | ||
| - | key_buffer = 8M | ||
| - | sort_buffer_size = 8M | ||
| - | [myisamchk] | ||
| - | key_buffer = 8M | ||
| - | sort_buffer_size = 8M | ||
| - | [mysqlhotcopy] | + | Часть информации |
| - | # Допускать простой длительностью interactive_timeout секунд (вместо | + | |
| - | # wait_timeout | + | |
| - | interactive-timeout | + | |