|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> Mysql - базовое описание
Mysql - базовое описание
Автор: Morty.
Базовое описание, и принципы работы с MySQL
SQL - язык структурированных запросов для доступа к базам данных и их управления.
SQL может: выполнять запросы к базе данных
  извлекать данные из базы данных
  добавить записи в базу данных
  обновить записи в базе данных
  удалить записи из базы данных
  создавать новые базы данных
  создавать новые таблицы в базе данных
  создавать хранимые процедуры в базе данных
  настроить разрешения для таблиц
Принятые переменные:
table_name - имя таблицы
column_name - колонки(поля)
value - значения
pattern - шаблон
database_name - имя базы данных (БД)
SQL является стандартным - но ...
Несмотря на то, что SQL придерживаеться ANSI (Американского национального института стандартов)
стандарта, существует много различных диалектов языка SQL. Вместе с тем, чтобы быть
совместимым со стандартом ANSI, все они поддерживают, по крайней мере, основные
команды (например, SELECT, UPDATE, DELETE, INSERT, WHERE). Большинство из реляционных
баз данных имеют свои собственные расширения(функций, команд...) в дополнение к SQL стандарту!
В данном описании я буду рассматривать язык SQL в разрезе MySQL.
Чаще всего база данных содержит одну или несколько таблиц ;-). Каждая таблица
имеет определенное имя (например, "people" или "cars"). Таблицы содержат
поля (колонки) с записями(строки). Сейчас забежим немного наперед, тоесть создадим
сразу БД, табличку и заполним её. Т.к. я не знал каким образом лучше построить
материал, решил что лучший вариант это наглядный, тоесть писать в
примерах опираясь на тестовую БД.Поэтому весь описанный материал будет опираться на бд
которая приведена ниже...
mysql> create database mytest;
Query OK, 1 row affected (0.00 sec)
mysql> use mytest;
Database changed
mysql> CREATE TABLE people(id int,Name varchar(255),LastName varchar(255
-> addr varchar(255), telnumb int,birthdaydate date);
Query OK, 0 rows affected (0.03 sec)
mysql> show fields from people;
+---------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| Name | varchar(255) | YES | | NULL | |
| LastName | varchar(255) | YES | | NULL | |
| addr | varchar(255) | YES | | NULL | |
| telnumb | int(11) | YES | | NULL | |
| birhthdaydate | date | YES | | NULL | |
+---------------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> insert into people(id,Name,LastName,addr,telnumb,birthdaydate)
-> values (1,'Vasia','Pupkin','selo Slavne','452','1922-10-23');
Query OK, 1 row affected, 1 warning (0.00 sec)
........
mysql> select * from people;
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)
mysql>
| Таблица содержит 4 строки и 6 колонок (id,Name, Lastname,addr,telnumb,birthdaydate).
Все действия в базе данных осуществляется с помощью SQL запросов.
Например следующий SQL запрос выведет все записи из таблицы "people" :
SELECT * from people;
(Для SQLя не важен регистр символов, заглавные, прописные, все равны
(SELECT и select - одно и тоже), также важно помнить что MySQL
требует чтобы каждый запрос заканчивался символом ";")
Для более легкого запоминания и понимания можно запросы разделить на
3 типа: DML(Data Manipulation Language) - управление данными(УД),
и определение(вид) данных DDL(Data Definition Language)(ОД).
И еще пожалуй системные запросы(СЗ)DCL (Data Control Language).Также необходимо всегда иметь под рукой информацию о том какие типы данных
применяються в таблицах MySQL. И в конце концов определить пользователей и их права.При необходимости написания скриптов, можно посмотреть 2 простых примера
К УД можно отнести:
SELECT - извлечение(выборка) данных из БД
UPDATE - обновление данных в БД
DELETE - удаление данных из БД
INSERT INTO - вставка(заполнение) новыми данными БД
к ОД:
CREATE DATABASE - создать новую БД
CREATE TABLE - создать новую таблицу
ALTER TABLE - изменить таблицу
DROP TABLE - удалить таблицу
CREATE INDEX - создать индекс (поисковый ключ)
к СЗ:
show processlist - показать процессы БД
DML(Data Manipulation Language) - управление данными(УД)
SELECT - используеться для того чтобы делать выборки из БД
синтаксис:
SELECT column_name(s) FROM table_name;
| column_names - если необходимо выбрать несколько полей,
они должны указываться через запятую, например
mysql> SELECT Name, LastName from people;
+-------+-----------+
| Name | LastName |
+-------+-----------+
| Vasia | Pupkin |
| Petia | Zatochkin |
| Semen | Krivoy |
| Masha | Zolotaya |
+-------+-----------+
4 rows in set (0.00 sec)
mysql>
| * - всё
SELECT * from people;
выведет всё(все поля) что есть в таблице people;
Иногда в таблице, некоторые из колонок могут содержать повторяющиеся значения.
Это не проблема, т.к. всегда можно сделать выборку лишь тех значений
который разняться между собой(не дублируються). Ключевое слово DISTINCT может быть использовано для этих целей.
синтаксис:
SELECT DISTINCT column_name(s) FROM table_name;
| например:
mysql> SELECT DISTINCT addr FROM people;
+-------------+
| addr |
+-------------+
| selo Slavne |
| g.Zhitomir |
| pgt. Pobeda |
+-------------+
3 rows in set (0.00 sec)
| WHERE - используется для получения только тех записей,
которые соответствуют определенному критерию.
синтаксис:
SELECT column_name(s) FROM table_name WHERE column_name=value;
|
mysql> SELECT * FROM people WHERE Name='Vasia';
+------+-------+----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
+------+-------+----------+-------------+---------+--------------+
1 row in set (0.00 sec)
mysql>
| Здесь также могут использоваться операторы:
=   равно
<>   не равно
>   больше
<   меньше
>=   больше либо равно
<=   меньше либо равно
...
здесь еще много чего может быть... см. оффиц сайт либо любую книгу по MySQL
Операторы AND & OR
Оператор AND отображает данные если выполняются оба условия.
Оператор OR отображает данные если выполняеться хотябы одно условие.
mysql> SELECT * FROM people WHERE Name='Vasia' AND LastName='Pupkin';
+----+-------+----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+----------+-------------+---------+--------------+
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
+----+-------+----------+-------------+---------+--------------+
1 row in set (0.01 sec)
mysql>
|
mysql> SELECT * FROM people WHERE Name='Semen' OR LastName='Zolotaya';
+----+-------+----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+----------+-------------+---------+--------------+
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+----------+-------------+---------+--------------+
2 rows in set (0.00 sec)
mysql>
| Смешивание AND & OR
mysql> SELECT * FROM people WHERE Name='Petia' AND (LastName='Zatochkin' OR
->
-> LastName='Krivoy');
+----+-------+-----------+------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+------------+---------+--------------+
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
+----+-------+-----------+------------+---------+--------------+
1 row in set (0.01 sec)
mysql>
| ORDER BY - оператор сортировки, используется для сортировки результатов,
установленных указанной колонки.ORDER BY по умолчанию сортирует
записи в возрастающем порядке.(ASC)
Если вы хотите сортировать записи в (обратном)порядке убывания,
вы можете использовать ключевое слово DESC.
синтаксис:
SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
|
mysql> SELECT * FROM people ORDER BY Name;
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
+----+-------+-----------+-------------+---------+--------------+
4 rows in set (0.01 sec)
| в обратном порядке
mysql> SELECT * FROM people ORDER BY Name DESC;
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)
| LIMIT - используеться для вывода определенной группы(кол-ва) данных
синтаксис:
SELECT column_name(s) FROM table_name LIMIT a,b;
| a - число , с какой позиции выдавать данные
b - кол-во выводимых строк
примечание: также можно задавать 1 цифру, не две.
mysql> SELECT * from people LIMIT 1,3;
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+-----------+-------------+---------+--------------+
3 rows in set (0.00 sec)
| LIKE - этот оператор используеться для поиска данных в полях по шаблону.
синтаксис:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
|
mysql> SELECT * from people WHERE Name LIKE '%em%';
+----+-------+----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+----------+-------------+---------+--------------+
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
+----+-------+----------+-------------+---------+--------------+
1 row in set (0.01 sec)
mysql> SELECT * from people WHERE telnumb LIKE '2%';
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
+----+-------+-----------+-------------+---------+--------------+
2 rows in set (0.01 sec)
mysql>
| IN - позволяет задавать несколько значений в поиск
синтаксис:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,..)
|
mysql> SELECT * from people WHERE LastName IN('Krivoy','Zolotaya');
+----+-------+----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+----------+-------------+---------+--------------+
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+----------+-------------+---------+--------------+
2 rows in set (0.00 sec)
| BETWEEN - оператор с помощью которого можно вывести диапазон данных
который ограниченный двумя значениями полей.
синтаксис:
SELECT column_name(s) FROM table_name WHERE \
column_name BETWEEN value1 AND value2;
|
mysql> select * from people where id between 1 and 3;
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
+----+-------+-----------+-------------+---------+--------------+
3 rows in set (0.00 sec)
| Для того чтобы двигаться дальше создадим еще одну табличку...
Еще одна таблица cars в тойже БД mytest
+------+----------------+-----------+
| C_id | Cmodel | GosNumber |
+------+----------------+-----------+
| 1 | GAZ | 2211 |
| 2 | Zaporogets | 4521 |
| 3 | Volga-supercar | 7711 |
+------+----------------+-----------+
|
mysql> create table cars(C_id int, Cmodel varchar(255), GosNumber int);
Query OK, 0 rows affected (0.01 sec)
mysql> show columns from cars;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| C_id | int(11) | YES | | NULL | |
| Cmodel | varchar(255) | YES | | NULL | |
| GosNumber | int(11) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into cars values(1,'GAZ','2211'),(2,'Zaporogets','4521'),
->(3,'Volga-supercar','7711');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from cars;
+------+----------------+-----------+
| C_id | Cmodel | GosNumber |
+------+----------------+-----------+
| 1 | GAZ | 2211 |
| 2 | Zaporogets | 4521 |
| 3 | Volga-supercar | 7711 |
+------+----------------+-----------+
3 rows in set (0.00 sec)
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| cars |
| people |
+------------------+
2 rows in set (0.00 sec)
mysql>
| JOIN - используется для запроса(вывода) данных из двух или более таблиц.
mysql> SELECT * from cars join people;
| ...вывод убрал, т.к. не очень красиво он тут "вписываеться"
UNION - оператор сочетает вывод двух и более SELECT операторов.
примечание: каждый запрос SELECT в сочетании с UNION должны иметь одинаковое
число столбцов. Колонки также должны иметь аналогичные типы данных.
синтаксис:
SELECT column_name(s) FROM table_name1 UNION
SELECT column_name(s) FROM table_name2;
| делаем дополнительную таблицу cars2
+------+-----------+--------+
| id | model | number |
+------+-----------+--------+
| 1 | Mers | 3411 |
| 2 | BMW | 3317 |
| 3 | Velosiped | 3456 |
+------+-----------+--------+
mysql> SELECT * from cars UNION SELECT * FROM cars2;
+------+----------------+-----------+
| C_id | Cmodel | GosNumber |
+------+----------------+-----------+
| 1 | GAZ | 2211 |
| 2 | Zaporogets | 4521 |
| 3 | Volga-supercar | 7711 |
| 1 | Mers | 3411 |
| 2 | BMW | 3317 |
| 3 | Velosiped | 3456 |
+------+----------------+-----------+
6 rows in set (0.00 sec)
| UPDATE - используется для обновления существующих записей в таблице.
синтаксис:
UPDATE table_name SET column1=value, column2=value2,.. \
WHERE some_column=some_value;
| работать с данной конструкцией надо внимательно т.к. например если указать обновление
значений полей без "доп фильтра" можно затереть данные которые вам на самом деле нет
нужды трогать.
Например:
UPDATE people SET Name='Vasia', LastName='Mikolich';
| приведет таблицу к такому виду
mysql> update people set Name='Vasia', LastName='Mikolich';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> select * from people;
+----+-------+----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+----------+-------------+---------+--------------+
| 1 | Vasia | Mikolich | selo Slavne | 452 | 1922-10-23 |
| 2 | Vasia | Mikolich | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Vasia | Mikolich | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Vasia | Mikolich | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+----------+-------------+---------+--------------+
4 rows in set (0.01 sec)
| т.е. если необходимо обновить только поле где id=1
то нужно писать так:
mysql> UPDATE people SET Name='Mikola', LastName='Mikolich' WHERE id='1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from people;
+----+--------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+--------+-----------+-------------+---------+--------------+
| 1 | Mikola | Mikolich | selo Slavne | 452 | 1922-10-23 |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+--------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)
mysql>
| т.к. здесь присутствует WHERE соответсвенно можно комбинировать с AND & OR.
DELETE- удаление записей
синтаксис:
DELETE FROM table_name WHERE some_column=some_value;
|
mysql> delete from people where id=1;
Query OK, 1 row affected (0.00 sec)
mysql> slect * from people;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near 'slect * from people' at line 1
mysql> select * from people;
+----+-------+-----------+-------------+---------+--------------+
| id | Name | LastName | addr | telnumb | birthdaydate |
+----+-------+-----------+-------------+---------+--------------+
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+-------+-----------+-------------+---------+--------------+
3 rows in set (0.00 sec)
mysql>
| INSERT - вставка(заполнение) данных в полях таблицы
синтаксис:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...);
| columnN - названия полей в таблице table_name
valueN - значения полей, т.е. содержимое, те данные которые будут в поле
пример показан выше, где заполняеться таблица cars
mysql> insert into cars values(1,'GAZ','2211'),
->(2,'Zaporogets','4521'),(3,'Volga-supercar','7711');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from cars;
+------+----------------+-----------+
| C_id | Cmodel | GosNumber |
+------+----------------+-----------+
| 1 | GAZ | 2211 |
| 2 | Zaporogets | 4521 |
| 3 | Volga-supercar | 7711 |
+------+----------------+-----------+
3 rows in set (0.00 sec)
|
DDL(Data Definition Language)(УД)
CREATE DATABASE - создает базу данных
синтаксис:
CREATE DATABASE database_name;
| CREATE TABLE - для создания таблиц в БД
синтаксис:
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
);
| где table_name - имя таблицы, column_name1 - имя столбца,
data_type - тип данных для этого солбца;
Какие типы данных могут быть в MySQL описано в разделе "Типы данных"
пример создания таблицы cars:
CREATE TABLE cars(C_id int,CModel varchar(255),Gos_Number int);
| Создание таблицы people:
CREATE TABLE people(id int,Name varchar(255),LastName varchar(255),
addr varchar(255), telnumb int,birhthdaydate date);
| понятно что таблицы будут пустые , и их предстоит заполнить.
ALTER TABLE - используется для изменения структуры таблиц.
Для того чтобы добавить(ADD)
колонку в таблицу необходимо выполнить следующее:
синтаксис:
'Добавить'
ALTER TABLE table_name ADD column_name datatype;
| По умолчанию новый столбец вставляется в конец таблицы.
mysql> alter table people add country varchar(255);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from people;
+---+-------+----------+------------+---------+--------------+---------+
|id | Name | LastName | addr | telnumb | birthdaydate | country |
+---+-------+----------+------------+---------+--------------+---------+
| 1 | Vasia | Pupkin | selo Slavne| 452 | 1922-10-23 | NULL |
| 2 | Petia | Zatochkin| g.Zhitomir | 23 | 1995-04-12 | NULL |
| 3 | Semen | Krivoy | pgt. Pobeda| 231 | 1992-02-11 | NULL |
| 4 | Masha | Zolotaya | selo Slavne| 5551232 | 1980-05-05 | NULL |
+---+-------+----------+------------+---------+--------------+---------+
4 rows in set (0.00 sec)
mysql>
| Если необходимо, чтобы столбец встал в начало таблицы,
нужно после параметров вставляемого столбца написать ключевое слово FIRST:
ALTER TABLE table_name ADD column_name datatype FIRST;
|
mysql> alter table people add country varchar(255) FIRST;
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from people;
+---------+------+-------+-----------+-------------+---------+--------------+
| country | id | Name | LastName | addr | telnumb | birthdaydate |
+---------+------+-------+-----------+-------------+---------+--------------+
| NULL | 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
| NULL | 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| NULL | 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| NULL | 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+---------+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.01 sec)
mysql>
| Если необходимо, чтобы столбец был вставлен не в начале таблицы,
и не в конце, а после определенного столбца, то нужно применить
ключевое слово AFTER 'имя столбца', после которого будет установлен
новый столбец:
ALTER TABLE table_name ADD column_name datatype AFTER column_name2;
| добавит колонку column_name следом за колонкой column_name2
mysql> alter table people add country varchar(255) after id;
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from people;
+----+---------+-------+-----------+-------------+---------+--------------+
| id | country | Name | LastName | addr | telnumb | birthdaydate |
+----+---------+-------+-----------+-------------+---------+--------------+
| 1 | NULL | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
| 2 | NULL | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | NULL | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | NULL | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+----+---------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)
mysql>
| Если нужно дописать к таблице не один, а несколько столбцов,
то для каждого столбца нужно ADD column_name datatype записать через запятую:
ALTER TABLE table_name ADD column_name datatype,
ADD column_name2 datatype, ADD column_name3 datatype;
|
mysql> alter table people add country varchar(255), add state varchar(255);
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from people;
+---+-------+-----------+-------------+---------+-------------+--------+------+
|id | Name | LastName | addr | telnumb |birthdaydate | country| state|
+---+-------+-----------+-------------+---------+-------------+--------+------+
| 1 | Vasia | Pupkin | selo Slavne | 452 |1922-10-23 | NULL | NULL |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 |1995-04-12 | NULL | NULL |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 |1992-02-11 | NULL | NULL |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 |1980-05-05 | NULL | NULL |
+---+-------+-----------+-------------+---------+-------------+--------+------+
4 rows in set (0.00 sec)
| CHANGE - Изменить параметр
синтаксис:
ALTER TABLE table_name CHANGE column_name_old column_name_new parametrs;
| где
table_name - имя таблицы, в которой находится изменяемый столбец;
column_name_old - имя столбца изменяемого столбца;
column_name_new - новое имя изменяемого столбца (должно равняться column_name_old,
если мы не хотим поменять имя столбца);
parametrs - новые параметры столбца.
mysql> alter table people CHANGE LastName Familia varchar(255);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> select * from people;
+------+-------+-----------+-------------+---------+--------------+
| id | Name | Familia | addr | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
| 1 | Vasia | Pupkin | selo Slavne | 452 | 1922-10-23 |
| 2 | Petia | Zatochkin | g.Zhitomir | 23 | 1995-04-12 |
| 3 | Semen | Krivoy | pgt. Pobeda | 231 | 1992-02-11 |
| 4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05 |
+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.01 sec)
mysql>
| DROP- Для удаления колонки:
синтаксис:
ALTER TABLE table_name DROP column_name;
| если необходимо удалить несколько колонок из таблицы - указываем все через
запятую.
Для того чтобы удалить 'индекс' необходимо поступить следующим образом:
ALTER TABLE table_name DROP INDEX index_name;
| чтобы узнать имя индекса необходимо выполнить следующее:
SHOW KEYS from table_name;
|
DROP TABLE - удаляет табличку.
синтаксис:
CREATE INDEX
Индекс может быть создан для таблицы,это даст возможность
более быстро и эффективно работать.Пользователю индекс не
виден, он просто используется для ускорения поисков / запросов.
Примечание: Обновление таблицы с индексами занимает больше времени,
чем обновление таблицы без (поскольку индексы также нуждаются в обновлении).
Таким образом, индексы стоит создавать только на столбцы (таблицы),
по которым будет часто производиться поиск и запросы.
синтаксис:
CREATE INDEX index_name ON table_name (column_name,column_name2,..);
|
mysql> create index indx on people (Name);
Query OK, 4 rows affected (0.02 sec)
Records: 4 Duplicates: 0 Warnings: 0
| до
mysql> show columns from people;
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| Name | varchar(255) | YES | | NULL | |
| LastName | varchar(255) | YES | | NULL | |
| addr | varchar(255) | YES | | NULL | |
| telnumb | int(11) | YES | | NULL | |
| birthdaydate | date | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
| после
mysql> show columns from people;
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| Name | varchar(255) | YES | MUL | NULL | |
| LastName | varchar(255) | YES | | NULL | |
| addr | varchar(255) | YES | | NULL | |
| telnumb | int(11) | YES | | NULL | |
| birthdaydate | date | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
| также более конкретно(имена индексов) можно посмотреть так
SHOW KEYS from table_name;
| Для создания уникального индекса по таблице. Повторяющиеся значения
не допускаются, необходимо:
CREATE UNIQUE INDEX index_name ON table_name (column_name);
|
Системные запросы(СЗ)DCL (Data Control Language)
SHOW - используеться для отображения информации о полях, таблицах в БД;
самым популярным являеться
SHOW DATABASES - просмотрет какие есть базы в MySQL сервере
SHOW TABLES - показать таблицы Бд
SHOW FIELDS(COLUMNS) - показать информацию о том какие поля есть в таблице,
каких они типов, пример:
SHOW columns from people;
| SHOW KEYS from table_name - вот так и переводиться -) отобразить ключи таблицы
SHOW PROCESSLIST; - показать процессы сервера MySQL.
Создание пользователей и назначение им прав
GRANT - Создание пользователей и назначение прав
синтаксис:
GRANT (ALL PRIVILEGES | (SELECT, INSERT, UPDATE, DELETE,
REFERENCES (column list), USAGE))
ON table TO user,... [WITH GRANT OPTION]
[IDENTIFIED BY [PASSWORD] 'password']] WITH w_options
| GRANT OPTION =
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
table = *.*
db_name.tbl_name
user = 'name'@'hostname'
w_options
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
пример: (создать пользователя web(подкл. только с localhost), назначить пароль webpass,
назначить доп опции на максимально возможное кол-во запросов, соединений...)
GRANT USAGE ON *.* TO 'web'@'localhost' IDENTIFIED BY 'webpass'
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
| пример: (дать все права на бд web_base, пользователю web. База должна существовать.)
GRANT ALL PRIVILEGES ON `web_base`.* TO 'web'@'localhost' WITH GRANT OPTION;
| SET PASSWORD - Установка пароля
синтаксис:
SET PASSWORD FOR 'user'@'hostname' = password('newpass');
| аналог
GRANT USAGE ON *.* TO user@host IDENTIFIED BY 'password';
| DROP USER - Удаление пользователя
синтаксис:
DROP USER user [, user] ...
| SHOW GRANTS - Показать права
SHOW GRANTS FOR 'root'@'localhost';
| RENAME USER - Переименовать пользователя
синтаксис:
RENAME USER old_user TO new_user;
|
Функции
Несколько примеров по работе с функциями:
AVG() - возвращает среднее значение
SELECT AVG(id) FROM people;
| COUNT() - считает что прикажешь
SELECT COUNT(column_name) FROM table_name;
SELECT COUNT(*) FROM table_name;
| MAX() - возвращает максимальное значение
пример:
SELECT MAX(column_name) FROM table_name;
| MIN() - возвращает минимальное значение
пример:
SELECT MIN(column_name) FROM table_name;
| SUM() - функция суммирования
пример:
SELECT SUM(column_name) FROM table_name;
| UCASE() - ковертирует символы в верхний регистр
пример:
SELECT UCASE(column_name) FROM table_name;
| LCASE() - конвертирует символы в нижний регистр
пример:
SELECT LCASE(column_name) FROM table_name;
|
Типы данных которые используються в таблицах(data_type)
Целые числа
Тип
|
Описание
|
TINYINT
|
Может хранить числа от -128 до 127
|
SMALLINT
|
Диапазон от -32768 до 32767
|
MEDIUMINT
|
Диапазон от -8388608 до 8388607
|
INT
|
Диапазон от -2147483648 до 2147483647
|
BIGINT
|
Диапазон от -9223372036854775808 до 9223372036854775807
|
|
Дробные числа
Тип
|
Описание
|
FLOAT
|
Число с плавающей точкой небольшой точности
|
DOUBLE
|
Число с плавающей точкой двойной точности
|
REAL
|
Синоним для DOUBLE
|
DECIMAL
|
Дробное число хранящееся в виде строки
|
NUMERIC
|
Синоним для DECIMAL
|
|
Строки (символьные данные)
Тип
|
Описание
|
VARCHAR
|
Может хранить не более 255 символов
|
TINYTEXT
|
Может хранить не более 255 символов
|
TEXT
|
Может хранить не более 65 535 символов
|
MEDIUMTEXT
|
Может хранить не более 16 777 215 символов
|
LONGTEXT
|
Может хранить не более 4 294 967 295 символов
|
|
Бинарные данные(учитываеться регистр символов)
Тип
|
Описание
|
TINYBLOB
|
Может хранить не более 255 символов
|
BLOB
|
Может хранить не более 65 535 символов
|
MEDIUMBLOB
|
Может хранить не более 16 777 215 символов
|
LONGBLOB
|
Может хранить не более 4 294 967 295 символов
|
|
Дата и время
Тип
|
Описание
|
DATE
|
Дата в формате ГГГГ-ММ-ДД
|
TIME
|
Время в формате ЧЧ:ММ:СС
|
DATETIME
|
Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
|
TIMESTAMP
|
Дата и время в формате ГГГГММДДЧЧММСС
|
|
Дополнительные инструменты и возможности сервера MySQL
mysql - SQL шелл.Может работать как в интерактивном режиме, т.е.
дает возможность подключиться к базе и посредством SQL команд и запросов
производить какие-либо действия с БД, так и не интерактивном тоесть вызвано исполнение кода из шелл-скрипта например.
пример:
mysql --user=user_name --password=your_password db_name
| подключиться к указанной бд определеннім пользвоателем.
mysql --user=user_name --password=your_password db_name < db_structure.sql
| таким образом можно восстанавливать БД по имеющемуся дампу БД.
mysql --user=user_name --password=your_password \
db_name--execute="sql commands"
| может быть использвана в шелл-скриптах если необходимо производить какие-то запросы из скрипта.
myisamchk - тулза для работы с MyISAM таблицами. Может чекать, восстанавливать и оптимизировать таблицы.(Работает с файлами .MYD и .MYI)
Перед использование желательно делать бэкапы.
пример:
mysql_config - показывает опции с которыми был скомпилирован Mysql.
mysql_fix_privilege_tables - скрипт, который обновляет все таблицы с привилегиями.
mysql_install_db - скрипт который инсталит базы,таблицы которые нужны для работы MYSQL.
mysql_tzinfo_to_sql - загружает таблицы временных зон (time zones).
mysql_upgrade - запускаеться каждый раз при обновелнии сервера MySQL. Проверяет все таблицы во всех базах на совместимость с текущей версией.
Чтобы проверить и восстановить таблицы, и апгрейднуть системные таблицы mysql_upgrade
выполняет следующую команду:
mysqlcheck --check-upgrade --all-databases --auto-repair
mysql_fix_privilege_tables
| mysql_waitpid - запуск с ожиданим программы чей pid и время её ожидания можно утсановить
mysql_waitpid [options] #pid #time
| mysqladmin - тулза для администрирования MySQL сервера.
mysqladmin create db_name - создать новую БД с именем db_name
drop db_name - удалить базу
extended-status - расширенная информация о состоянии сервера
flush-hosts - очистить всю информацию о хостах в кэше
flush-logs - очистить все логи
flush-privileges - перезагрузить таблицы с привилегиями (тоже что и reload)
flush-status - очистить статус переменных
flush-tables - очистить все таблицы
password - устанавливает пароль для БД
shutdown - остановить сервер
Для случая когда сервер настроен с подчиненными серверами (репликация)
startslave - запустить репликацию на подчиненном сервере (slave)
stop-slave - остановить репликацию на подчиненом сервере (slave)
status - отображает краткую информацию о статусе сервера
variables - отобразить переменные сервера и их значения
threads - покажет кол-во активных клиентских трэдов (threads)
--host=host_name - (-h hostname )подключиться к MySQL на укзанный хост
--password=password (-p[password]) - указать пароль на подключение
--port=port_num (-P port_num) - указать порт подключения
--protocol={TCP|SOCKET|PIPE|MEMORY} - указывает протокол/метод с
помощью которого происходит подключение
--socket=path (-S path) - подключение на файл-сокет
--ssl* - защищенное подключение, через ssl
--user=user_name, -u user_name - подключающейся пользователь
mysqlbinlog - инструмент для обработки бинарных логов MySQL'я
Сохранить все логи в файл
mysqlbinlog binlog.000001 > /tmp/statements.sql
| mysqlbug - скрипт, баг-репортер
mysqlcheck - тулза "чекер" и восстановитель таблиц
--all-databases (-A) прочекать все таблицы во всех базах
--auto-repair - автоматически восттанавливать(чинить) таблицы
--optimize -o - оптимизировать таблицы
--repair (-r) - починить таблицы
mysqld_safe - скрипт запуска сервера(рекомендуемый)
mysqldump - инструмент для бэкапирования баз
mysqldump -u[username] -p[password] -h[host] db_name [tables] > backup.sql
| --ignore-table=db_name.tbl_name - игнорить определенную таблицу при бэкапе.
--lock_tables (-l) лочить таблицы перед бєкапированием.
--xml, (-X) сохранить бэкап в формате xml
mysqlimport - прога для импорта данных, в различных форматах
mysqlshow - тулза для быстрого просмотра баз, таблиц, полей.
Выполнение SQL запросов из шелла и php
Парочка простых примеров:
Выполнение запросов из шела:
#!/bin/sh
/usr/local/bin/mysql --host=localhost --user=exim --password=exim \
--database=exim --execute="DELETE FROM \
\`sended_list\` WHERE \`last_mail_timestamp\` \
< (UNIX_TIMESTAMP() - 60*24*3600)"
|
#!/bin/sh
user="dbuser"
pass="dbpassword"
db="dbnme"
host="localhost"
mysql --host="$host" -u "$user" -p"$pass" "$db" <<EOF
sql-statement-1;
sql-statement-2;
EOF
|
#!/bin/sh
user="dbuser"
pass="dbpassword"
db="dbnme"
host="localhost"
sql="select * from tal_name"
mysql --host="$host" -u "$user" -p"$pass" <<EOF
use $db;
$sql;
EOF
| пример для PHP (создание БД):
<?php
$sql="CREATE DATABASE db_name";
mysql_query($sql);
?>
| Документация (первоисточник):
http://dev.mysql.com/doc/
http://www.mysql.ru/docs/man/
Функции в MySQL
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=11624.
размещено: 2008-10-13,
последнее обновление: 2010-01-29,
автор: Morty
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff
Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа
Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL
Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)
Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP
Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools
Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP
Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network
Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem
В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID
Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN
Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS
В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL
Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)
Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external
mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid
Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6
Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD
Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc
Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
2009-02-18, Andy
Free-SA
Программа анализирует log файлы Squid'а и формирует по ним отчет.
2009-02-02, Cancer
Openfire Jabber Server
Установка Jabber сервера на примере Openfire
2009-01-28, Cancer
mpd5 + сжатие и шифрование
Установка VPN сервера mpd5 + сжатие и шифрование
2009-01-26, vp
freebsd + webcamera
Подключение и настройка вебмкамеры для работы с freebsd на примере Logitech QCam STX
2009-01-10, Grishun_U_S
конфиг для офисов
В статье разбирается конфиг для офиса, пользователи которого имеют строгие ограничения по портам. Заворачиваем www трафик на транспарентный прокси, а остальное NAT'им. Эффективно делим канал интернет
2008-12-27, Storoge
sftp+chroot
Возникла необходимость дать возможность нескольким пользователям заливать на сервер контент для своих сайтов через sftp, чтобы при этом не страдала безопасность.
2008-12-13, Morty
PurefFTPd
Администрирование pureftpd-сервера с помощью вэб интерфейса Usermanager
2008-12-11, lissyara
termlog
Небольшая простая утилита, использующаяся для записи в файл всего что происходит на терминалах системы. Полезно, когда есть доступ по ssh у тех, кому не очень доверяете. Паранойя - это не плохо =)
2008-11-26, Cancer
SQUID+SAMS +Rejik-(ADLDAP)
Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
2008-11-22, dvg_lab
php5-oci8
Решение проблем segmentation fault (core dumped) при работе с oracle8-client и php5-oci8
2008-11-21, m0ps
NTP
Пример настройки NTP сервера для локальной сети и клиента, для синхронизации времени с локальный NTP сервером. Обновление ntpd из портов.
2008-11-20, Cancer
SQUID+SAMS +Rejik-(NTLM)
Установка Прокси сервера SQUID с аутентификацией по NTL с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf, РЕЖИК собственно рубит банеры и запрещает пользователям хо
2008-11-20, UA
Hotspot
Настройка безпроводной точки доступа (WiFi) на freebsd
2008-11-12, Shaman
Enemy Territory
Появилась у меня такое желание поднять сервер Enemy Territory.
Поискал погуглил, ничего толкового не нашел пришлось все самому делать.
И вот решил поделиться опытом. Начинаем......
2008-11-11, lissyara
Samba+ NT ACL
Использование vfs самбы - модули full_audit и recycle. Настройка для использования в качестве файлопомойки с 500+ одновременно работающих юзеров. Раздача прав через нативный виндовый интерфейс.
2008-11-11, Raven2000
Upgrading OpenBSD
Сегодня мы будем обновлять OpenBSD. Систему необходимо поддерживать в актуальном виде и следить, чтобы все работало, как часы и все дырки были залатаны до прихода врага =)
2008-11-10, lexy
SMSTools 3
Как автоматизировать отправку и обработку входящих сообщений при помощи мобильного телефона, датакабеля и компа
2008-11-06, Cancer
Asterisk IP PBX
Установка VoiP сервера Asterisk IP PBX для соединения двух шлюзов и АТС
2008-10-30, atrium
Samba & CUPS & AD & ACL
Настройка Samba в роли доменного файл-сервера, и CUPS в роли принт-сервера для Windows клиентов
2008-10-17, Raven2000
src & ports
Конечно, в OpenBSD система портов никогда не сможет быть полной сравнение с той же системой во FreeBSD. Связано это с тем, что разработчики включают в порты лишь те приложение которые протестированн
2008-10-13, Morty
Mysql - базовое описание
Базовое описание и принципы работы с MySQL
2008-10-10, Cancer
exim&dovecot + fetchmail + SSL
Exim & Dovecot + Postfixadmin & Roundcube + Fetchmail & smtp_relay
С возможностью отправлять письма через смтп релей провайдера.
С использование SSL шифрование: POP3s IMAPs sSMTP
2008-10-09, m0ps
Дополнительные порты для роутера
Увеличение количества Ethernet портов маршрутизатора за счет свободных портов коммутатора пробросив vlan с сабинтерфейса роутера на интерфейс коммутатора.
2008-10-06, princeps
Bacula
Настройка сервера системы резервного копирования Bacula на FreeBSD для бэкапов FreeBSD и Windows машин
2008-10-02, zheromo
Postfix + DBMail
Создание почтовой системы на основе Postfix + DBMail + SASL2 + TLS + DSpam + ClamAV + RoundCubeWebMail
2008-10-02, Cancer
SugarForge CRM
SugarForge CRM предоставляет подавляющее большинство функциональных возможностей CRM систем
2008-09-12, arksu
ng_ipacct + squid
Подсчет трафика с помощью ng_ipacct. Связка ng_ipacct + squid + парсер логов + авторизатор + nginx + mysql и куча служебных скриптов для работы всей системы.
2008-09-03, Raven2000
GLPI
Мне надо было найти замену существующей программы инвентаризации, чтобы за компьютерами, принтерами, картриджами, лицензиями и тп был учет. Желательно с дополнительными бонусами типа системы подачи...
2008-09-03, salimk
POWERDNS
Статья о том как мигрировать с DNS сетвера ISC Bind на POWERDNS
2008-09-03, DNK
Rinetd
Редирект TCP портов с помощью утилиты rinetd - просто до безобразия - само прилодение простое, конфиг в одну строчку - что ещё надо для счастья? =)
2008-09-03, L!Ner
eGroupWare
Это сервер групповой работы. Он укомплектован собственным веб-интерфейсом, который обеспечивает доступ к вашим данным с любой платформы по всей планете.
2008-08-30, jafff
MAC адрес
У девайса VoIP Planet VIP-000 слетел MAC адрес и стал FF-FF-FF-FF-FF-FF, как я его востанавливал
2008-08-30, Morty
clonehdd
Перенесение, бэкапирование HDD,легко и просто
2008-07-31, Raven2000
Proxy Auto Configuration
Возникла необходимость автоматически настраивать прокси для всех компов и не бегать например если поменялось что-то на сервере прокси. Для этого давно существует технология Proxy Auto Configuration.
2008-07-29, f0s
NNTP сервер
Конфигурирование собственного NNTP-сервера.
2008-07-28, Al
spamooborona
настройка yandex spamooborona в качестве smtp-proxy для работы с exim
2008-07-28, Cancer
SQUID+SAMS +Rejik-(NCSA)
Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
2008-07-20, Raven2000
Pax
Эта замечательная утилита поставляется с FreeBSD по умолчанию, и она имеет неплохой потенциал.
Можно создавать архивы модифицировать их, а так же живьем переносить всю операционную систему с данными
2008-07-16, Andy2k
BIND & AD
Настройка BIND для обслуживания запросов контроллеров Active Directory. Альтернатива поднятию DNS от Microsoft.
2008-07-16, aleksey.kravchenko
Samba (PDC+BDC)
Поднять главный (офис) и резервный (филиал) контроллер домена на базе Samba и OpenLDAP, организовать синхронизацию и репликацию между ними. Запись в LDAP должена выполняться только на PDC.
2008-07-14, aleksey.kravchenko
OpenVPN + LDAP
Статья о том, как настроить OpenVPN с авторизацией пользователей в OpenLDAP.
2008-07-14, aleksey.kravchenko
ProFTPd + LDAP
ProFTPd с авторизацией пользователей в OpenLDAP
2008-07-13, lissyara
Asus Eee PC
Дали на несколько дней поиграться Asus Eee PC - мелкий ноутбок по смешной цене. Ну, первым делом ставим правильный ОС и смотрим - что из этого получиться.
2008-07-09, terminus
DNS сервер Unbound
Установка и настройка кеширующего DNS сервера Unbound под управлением FreeBSD 7.0
2008-07-08, f0s
mozilla autoconfig
Автонастройка браузера и почты Mozilla Seamonkey пользователям
2008-07-05, lissyara
iftop
Утилита предназначена для мониторинга загрузки канала в режиме реального времени - позволяет видеть кто именно занял полосу. Полезно для организаций с FreeBSD на шлюзовой машине.
2008-07-02, manefesto
snd_hda
Патчим snd_hda для корректной работы с наушниками
2008-06-27, Grishun_U_S
dd : бэкапируем windows
Клонирование разделов windows с помощью загрузочного диска FreeBSD
|
Комментарии пользователей [11 шт.]