logologologo Арифметика электронного бизнеса
internet business bureau
   
о компанииинтернет услугиразработка сайтовклиентаминфо

 
    ТЕХПОДДЕРЖКА       ИНСТРУКЦИИ   
 
Размещение сайтов
 FAR
 CuteFTP
Настройка прокси
Настройка почты
 The Bat
 Netscape 4.7
 OutlookExpress
Использование PHP
Базы данных
Статистика
Глоссарий
Настройка VPN соединения
Возможности почтового сервера

Регламент
(MSWORD, 100kb)

КОНТАКТЫ:
  тел.:  (495) 951-33-73
  тел.:  (495) 951-27-50
  e-mail: info@ibb.ru
ТЕХПОДДЕРЖКА
  тел.: (495) 772-43-24
  e-mail: support@ibb.ru

ИНСТРУКЦИИ

ИСПОЛЬЗОВАНИЕ БАЗ ДАННЫХ (БД) НА СЕРВЕРЕ КОМПАНИИ INTERNET BUSINESS BUREAU (IBB)

Поддерживаемые субд

На хостинговом сервере компании IBB, для пользователей тарифного плана "Бизнес" имеется возможность использовать базы данных, PostgreSQL или Mysql.

PostgreSQL и Mysql - реляционные базы данных, поддерживающие стандарт SQL92 (MySQL в меньшей степени) и обладающие широкими возможностями, сравнимыми с возможностями таких признанных лидеров рынка БД как Oracle, DB2 или MSSQL, но не требующих весьма высоких лицензионных отчислений за использование.

MySQL больше подходит для небольших и средних проектов, тогда как PostgreSQL можно рекомендовать для средних и крупных, в которых используются таблицы в несколько сотен тысяч записей и больше.

Некоторые компании, которые используют для на своих серверах MySQL: Yahoo! Finance, и PostgreSQL: Wireless Developer Network , GeoCommunity , Ready Set Net



Создание бд

Ваша личная БД создается техническим персоналом компании IBB при выделении места под Ваш сайт, при этом используются название БД, логин и пароль, указанные в регистрационной анкете. Язык HTML не содержит в себе возможности работы с БД, поэтому для загрузки или вывода данных из PostgreSQL или MySQL Вам необходимо воспользоваться скриптами на языке Perl или PHP

Для администрирования БД (создания, просмотра, удаления таблиц) в случае PostgreSQL используйте утилиту psql, в случае MySQL - mysql.

Для использования этих утилит необходимо зайти на сервер под вашим логином и паролем по протоколу SSH (войти в шелл). В настоящее время сервер IBB поддерживает только протокол версии 2 (SSH2), что связано с обнаруженными недостатками в системе безопасности протокола версии 1 (SSH1).

Существует достаточно много SSH-клиентов, и не все из них поддерживают SSH2. Мы можем рекомендовать SecureCRT и PuTTY.


ТЕПЕРЬ РАССМОТРИМ ПОДРОБНЕЕ ПОРЯДОК РАБОТЫ С КАЖДОЙ ИЗ БАЗ.


PostgreSQL

Администрирование

для запуска утилиты наберите в шелле команду psql

psql -h pgsql.ibb.ru -U <имя_пользователя> -d <имя_базы_данных>

Например:

$ psql -h pgsql.ibb.ru -U peter -d db_peter

Вид консоли после запуска:

Welcome to psql, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
db_peter=#


Список некоторых команд:

\d - список таблиц в базе данных
\? - команды консоли psql
\help -

команды SQL, поддерживаемые postgresql, для более подробной информации о команде и параметрах наберите \help <название_команды>

\q - выход из консоли

PostgreSQL поддерживает возможность хранить текстовую информацию в различных кодировках и автоматически перекодировать ее в требуемую кодировку клиента.  

Поддерживается можество кодировок, в том числе:

Кодировка   Обозначение в PostgreSQL  
KOI8-R KOI8
Windows CP1251 WIN
Windows CP866 ALT
ASCII SQL_ASCII

По умолчанию, информация в БД храниться в кодировке KOI8-R

Для правильного ввода информации, сортировки по алфавиту, операциями с датами, используя SQL-команды, необходимо задавать кодировку клиента:

SET CLIENT_ENCODING TO 'encoding';

Например:

db_peter=> SET CLIENT_ENCODING TO 'KOI8';

посмотреть текущую кодировку клиента:

SHOW CLIENT_ENCODING;



CGI-интерфейс: Perl

В настоящее время для работы с CGI-интерфейсом на серверах IBB используется интерпретатор языка Perl версии 5.005_03. Приведём пример простейшего скрипта для работы с PostgreSQL:

#!/usr/bin/perl -w
#
# Подключаем модуль для работы с базой
use Pg;
$dbname = 'db_peter'; # название базы
$login = 'peter'; # имя пользователя
$password = 'peter123'; # пароль
$host = 'pgsql.ibb.ru'; # имя хоста, на котором установлен PostgreSQL
# Устанавливаем соединение с базой
$conn = Pg::connectdb("dbname=$dbname user=$login password=$password");
die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status;
# Выбираем данные из таблицы tbl, затем выводим их на экран
Pg::doQuery($conn, "select attr1, attr2 from tbl", \@ary);
for $i ( 0 .. $#ary ) {
   for $j ( 0 .. $#{$ary[$i]} ) {
      print "$ary[$i][$j]\t";
   }
   print "\n";
}
## Завершаем соединение
$result = $conn ->reset;

Для более подробного описания модуля Pg можно воспользоваться командой perldoc из шелла:

$ perldoc Pg



PHP

Приведём пример простейшего скрипта для работы с PosgtreSQL из PHP:

<?PHP
  // Устанавливаем соединение
$conn_id = pg_connect ("dbname=db_peter user=peter password=peter123");
  // Задаем кодировку клиента
$sql_str = "SET CLIENT_ENCODING=WIN";
if (!($res = pg_exec ($conn_id, $sql_str))) {
echo "Error sql command";
}
  // Задаем тип представления даты
$sql_str = "SET DATESTYLE=EUROPEAN";
if (!($res = pg_exec ($conn_id, $sql_str))) {
echo "Error sql command";
}
  // Выбираем данные из таблицы tbl, затем выводим их на экран
$result = pg_Exec ($conn, "SELECT * FROM tbl");
if (!$result) {
echo "An error occured.\n";
exit;
}
  $arr = pg_fetch_array ($result, 0);
echo $arr[0] . " <- array\n";

  $arr = pg_fetch_array ($result, 1);
echo $arr["author"] . " <- array\n";

  // Завершаем соединение
pg_close($conn_id);
}
?>

Дополнительную информацию и документацию по работе с базой данных можно получить здесь:


PostgreSQL и PHP http://www.php.net/manual/en/ref.pgsql.php

Документация на PostgreSQL http://www.postgresql.org/idocs/




MySQL

Для администрирования базы используйте утилиту mysql, представляющую собой SQL-консоль. Для этого необходимо зайти по SSH на сервер и в шелле запустить утилиту следующей командой

[user1@host1 user1]$ mysql -h mysql.ibb.ru -u <имя_пользователя> -p <имя_базы_данных>

Например:

[user1@host1 user1]$ mysql -h mysql.ibb.ru -u peter -p db_peter

После успешного соединения вы увидите следующее:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.22.32

Type 'help' for help.

mysql>

Здесь вы можете в интерактивном режиме отправлять на сервер SQL запросы и получать результаты. Все SQL-команды необходимо заканчивать символом ";" или "\g".

Для доступа к базе данных из скриптов (PHP или Perl) необходимо указать имя хоста (host = mysql.ibb.ru), а также имя БД, логин и пароль




PHP

Приведём пример простейшего скрипта для работы с MySQL из PHP:

<?PHP
  // Создаём соединение с MySQL и делаем "привязку" к выбранной базой
  $conn_id = mysql_connect ("localhost", "peter", "peter123") or die ("Невозможно подключиться к MySQL");
mysql_select_db ("peter_db", $conn_id);
  // Чтение данных из таблицы
$res = mysql_query ("SELECT id, name FROM tbl_cnt", $conn_id);
while ($row = mysql_fetch_array ($res)) {
  echo "Id: ".$row["id"]."\n";
  echo "Name: ".$row["name"]."\n";
}
mysql_free_result ($res);
  // Закрываем соединение
mysql_close ($conn_id);
?>



Perl

Рассмотрим порядок работы c MySQL из программы на языке Perl.

В качестве "связующего" звена между MySQL и программой используется набор интерфейсов DBI и DBD. Приведем пример скрипта для работы с MySQL из Perl:

  #!/usr/bin/perl
#
#
use strict;

# Подключение DBI-модуля
use DBI();
  # Подключение к MySQL
# Формат вызова: "DBI:mysql:database=<имя_базы>;host=localhost","<имя_пользователя>", "<пароль>",
  my $dbh = DBI->connect("DBI:mysql:database=db_peter;host=localhost",
     "peter", "peter123",
   {'RaiseError' => 1});
 
# Демонстрация выполнения DDL-команды: удаление таблицы
# Если такой таблицы в базе не было, будет напечатано сообщение об ошибке
eval { $dbh->do("DROP TABLE tbl_cnt") };
print "Ошибка при удалении таблицы: $@\n" if $@;
 
# Создание таблицы
$dbh->do("CREATE TABLE tbl_cnt (id INTEGER, name VARCHAR(20))");
 
# Вставка данных в таблицу
$dbh->do("INSERT INTO tbl_cnt VALUES (1, " . $dbh->quote("Tim") . ")");
 
# Выполнение DML-команды: вставка данных в таблицу, с испоьзованием шаблонов
$dbh->do("INSERT INTO tbl_cnt VALUES (?, ?)", undef, 2, "Jochen");
 
# Чтение данных из таблицы
my $sth = $dbh->prepare("SELECT * FROM tbl_cnt");
$sth->execute();
 
while (my $ref = $sth->fetchrow_hashref()) {
print "Данные из таблицы: id = $ref->{'id'}, name = $ref->{'name'}\n";
}
$sth->finish();
  # Закрытие соединения с MySQL
$dbh->disconnect();

Дополнительную информацию и документацию по работе с базой данных можно получить здесь:

Документация на PHP, доступ к MySQL http://www.php.net/manual/en/ref.mysql.php

Документация на MySQL http://www.mysql.com/documentation/mysql/bychapter/



КОНТАКТЫ   |   ХОСТИНГ   |   ВЫДЕЛЕННЫЕ ЛИНИИ   |   ДОМЕНЫ   |   РАЗРАБОТКА САЙТОВ   |   ТЕХПОДДЕРЖКА   |   СТАТЬИ
Rambler's Top100 Яндекс цитирования Rambler's Top100
© 2000-2010 Internet Business Bureau
Все права защищены