Подключение к Mysql-серверу
Министерство
Образования Российской Федерации
Государственный университет аэрокосмического
приборостроения
| Отчет защищен: | |
| Преподаватель | Балберин В.В. |
ОТЧЕТ
по выполненной работе
по курсу: Языки программирования сетевых приложений
Подключение
к Mysql-серверу
| Работу выполнил | Ляпунов И.С. |
| студент группы 4640М: |
Санкт - Петербург
2011
Почему
выбрана система
Ubuntu 10.04
Сравнение версий Ubuntu 10.04 и 11
Была выбрана версия именно 10.04. Она более удобна пользователю по интерфейсу, больше напоминает Windows. 11-я же версия очень сильно поменялась внешне, что на мой взгляд сделало систему очень неудобной для обычного пользователя.
Сравним эти системы Ubuntu 10.04 и Windows 7
Windows 7 против
UbuntuLinux. Готов ли Linux полностью вытеснить
операционные системы семейства Windows с
настольных компьютеров?
Установка
Windows
7
Установка происходит в автоматическом
режиме, есть возможность работать с разделами
Ubuntu 10.04
Установка в автоматическом режиме, работа
с разделами, совмещение с другими ОС,
можно загрузить как LiveCD и сначала попробовать,
как работает ОС, а потом установить
Старт
Windows
7
36 с.
Ubuntu 10.04
14 с. (на моём компьютере)
Безопасность
Windows
7
Без антивируса – никуда
Ubuntu 10.04
Антивирус не нужен, политика ОС не позволяет
запускаться опасным программам без вашего
разрешения
Устройства
Windows
7
Поддерживает стандартные устройства,
для остальных нужно искать драйверы
Ubuntu 10.04
Поддерживает больше стандартных устройств,
включая большинство веб-камер, Bluetooth-адаптеров,
для остальных устройств ОС сама найдёт
драйверы и установит их, если для устройства
имеются Linux-драйверы
Установка программ
Windows
7
Ищите программы, устанавливайте и удаляйте
через панель управления. Инсталляторы
большие, установка долгая. Обновление
каждая программа выполняет сама, отчего
часто висят 3-5 процессов, которые запускают
обновления
Ubuntu 10.04
Почти любые программы можно найти в центре
приложений, не открывая браузера. Всё
ПО хранится в больших интернет-хранилищах
(репозиториях), которые можно находить
в Сети и подключать, хотя и главный репозиторий
содержит программы всех категорий. Инсталляторы
маленькие, установка-обновление-удаление
выполняет ОС. В случае недостатка какого-то
компонента, ОС автоматически устанавливает
его
Работа с Интернетом
Windows
7
Стандартный браузер не работает со многими
сайтами, почта и чат отсутствуют
Ubuntu 10.04
Сразу после установки вы можете выходить
в Сеть через FireFox, работать с почтой (наподобие
Outlook), и переписываться в 19 популярных
чатах, включая ICQ, Jabber и Facebook.
Работа с документами
Windows
7
Есть блокнот и WordPad, работать с офисными
документами можно после установки MicrosoftOffice
Ubuntu 10.04
Есть Gedit – аналог блокнота, но с подсветкой
синтаксиса, сразу можно работать с офисными
документами через OpenOffice
Мультимедиа
Windows
7
Возможно почти всё
Ubuntu 10.04
"Из коробки" - поддержка основных
форматов.
Цена
Windows 7
Платная.
Ubuntu 10.04
Бесплатна. И все программы, входящие в
состав бесплатны и свободны. А плюс это
или минус – кому как.
Выбор СУБД.
Почему выбрали MySQL?
Oracle и PL
SQL являются серьезными базами данных,
на которых развертываются большие корпоративные
системы. Тот же самый Oracle стоит приличных
денег. MySQL является полностью свободным
продуктом, быстро настраиваемым для
нужд малых проектов и программ.
Актуальность
База данных выполняют роль единого хранилища, откуда могут брать данные другие пользователи или туда их класть. Выступает в роли единого центра информации. Почему именно база данных? Потому что это основной способ хранения информации, дает возможность быстрого поиска информации и ее централизованного обновления. Единое место хранения позволяет упростить процесс защиты БД от ненужного доступа.
Собственно почти на каждом предприятии есть своя корпоративная сеть. Для чего нужен DHCP сервер? Для автоматической выдачи сетевых настроек. Это
IP адрес, маска подсети, DNS сервер, шлюз. Если сеть состоит за 5-10 компьютеров все эти настройки можно прописать вручную, а если из 100 и более, тот тут проще поставить DHSP для автоматизации этого процесса. Для чего нужен DNS? Для сопоставления IP адреса и Имение компьютера, для чего это нужно? Чтобы не запоминать IP адреса компьютеров и сервисов. Куда проще обращаться к компьютеру по имени, чем помнить его IP-адрес .
Настройка DHCP-сервер на Ubuntu.
DHCP (англ. DynamicHostConfigurationProtoc
Для того чтобы Ubuntu выполнял роль DHCP-сервера
надо поставить всего один пакет dhcp3-server,
ставиться он одной командой
sudoapt-getinstall dhcp3-server
После того как пакет будет установлен, DHCP-сервер будет работать как демон(т.е. запускаться при старте системы), остановить, перезапустить или запустить его можно командой.
sudo/etc/init.d/dhcp3-server stop/restart/start
Настройка DHCP-сервера осуществляется через конфигурационный файл /etc/dhcp3/dhcpd.conf
Для того чтобы
настроить раздачу сетевых
subnet10.0.2.0 netmask 255.255.255.0 {
range10.0.2.3010.0.2.100; # Диапазон ip адресов
allow unknown-clients;
}
Вся истории аренды
ip адресов пишется в файл /var/lib/dhcp3/dhcpd.
Настройка
DNS
Настройка bind9.
Классическим ДНС сервером для unix систем
является BIND (BerkleyInternetNameDomain) или сокращенно named.
named уже есть в штатной установке FreeBSD,
но можно и переустановить.
| root@localhost# cd /usr/ports/dns/bind9 && make install |
Установка из пакета:
| root@localhost# pkg_add -r bind9 |
Особенностью
полной сборки является утилита rndc,
управляющая демоном named. А посему пришлось
сгенерировать пару ключей для rndc и правильно
их прописать. Поскольку named - это штатный
демон для FreeBSD, то его конфиг находится
в /etc/namedb (а не в /usr/local/etc/named, как обычно),
а если еще точнее, то в /var/named/etc/namedb.
Итак запускаем rndc-confgen:
| root@localhost# rndc-confgen # Start of rndc.conf key "rndc-key" { algorithm hmac-md5; secret "zDfVVNmsufD3PYiGeXNlmw=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, # adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-md5; # secret "zDfVVNmsufD3PYiGeXNlmw=="; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndc-key"; }; # }; # End of named.conf |
Отсюда видно,что
именно и в какой файл мы должны вписать,
так и поступаю- делюCopy/Paste в указанные
файлы. Толькораскомментировав ('#') то,
что указано для named.conf.
Cамое время вписать в /etc/rc.conf строку:
| named_enable="YES" |
После чего
лучше перегрузить компьютер,
но если перезагружать очень
не хочется, то можно
ДНС может использоваться следующими
способами:
1. Кеширующий ДНС
2. Мастер ДНС - главный держатель зоны
3. Подчиненный ДНС -
умеет скачивать доверенную
зону, хранить у себя
и обслуживать ДНС запросы
на эту зону.
Итак наш named.conf:
| #Это вносится от rndc-confgen key "rndc-key" { algorithm hmac-md5; secret "zDfVVNmsufD3PYiGeXNlmw=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; # В trusted вносим сервера вторичные, провайдерские, те которые могут скачивать зоны, # то есть доверенные узлы. Остальным лишняя информация не нужна. acl "trusted" { 192.168.0.0/24; 127.0.0.1; 195.196.197.198; 195.196.197.199; 195.94.224.129; }; # Описываем общие опции для всех зон: options { directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; allow-transfer { trusted; }; # имеют права скачивать зону allow-query { any; }; # имеют право отпралять запрос allow-recursion { any; }; # позволять рекурсивные запросы listen-on{ any; }; # слушать ip со всех нтерфейсов, query-sourceaddress * port 53; auth-nxdomainyes; version "WinDNS 1.01"; }; # как будут записываться логи logging { categorylame-servers { null; }; categorydefault { default_syslog;}; channeldefault_log { file "/var/log/dns.log"; severitynotice; print-timeyes; print-categoryyes; print-severityyes; }; categoryqueries{ default_log;}; categoryxfer-in { default_log; }; categoryxfer-out { default_log; }; categorysecurity { default_log; }; categoryresolver { default_log; }; categoryclient { default_log; }; categoryunmatched { default_log; }; categorydefault { default_log; }; categorydatabase { default_log; }; }; # Для кеширующего ДНС-а нужна такая запись: zone "." { typehint; file "named.root"; # обычно этот файл присутсвует в комплекте bind }; # Зона локалхоста zone "localhost" { typemaster; file "localhost.zone"; }; # описываем обратную зону для локалхоста # для этого достаточно запустить скрипт sh /etc/namedb/make-localhost zone "0.0.127.IN-ADDR.ARPA" { typemaster; file "localhost.rev"; notifyno; };
Здесь представлено описание доверительной зоны. |
Файл /etc/named/localhost.zone
| $ttl
1D @ IN SOA dommain.ru. admin.domain.ru. ( 2007110201 ;serial 108000 ;refresh 1800 ;retry 1209600 ;expiry 604800) IN NS @ IN A 127.0.0.1 |
Пояснения:
1 Строка: "$TTL 1D" - Time To Live 1 Day. Именно
со строчки TTL должен начинаться файл зоны.
В противном случае named его не прочитает
2 строка: "@" (собачка :) - означает
описанную зону в named.conf, в нашем случае
localhost, IN - без комментариев, SOA (startofautherity
кажется) ответсвенный сервер, dommain.ru. -
наш домен (обязательно с точкой), admin.domain.ru.
- наше мыло (ибо собачка используется
как имя зоны). Во второй строке обязательно
должна присутсвовать SOA-запись .
3 строка: серийный номер для обновления.
Если в зону вносятся любые изменения
номер должен быть увеличен. Обычно, номер
делают как ГГГГ-ММ-ДД 01-99. Благодря, такой
нехитрой формуле можно гарантировать
возрастающую уникальность серийного
номера зоны.
4 строка: обновляться каждые 30 часов
5 строка: повтроять через полчаса
6 строка: истечение срока 1209600 сек = 2 недели
8 запись типа: " IN NS @" - сокращенная,
полная выглядит так:
localhost.
IN NS @ или
@
IN NS @ что в сущности одно и то же из named.conf
Этой строкой мы объясняем кто будет мастер-сервером
ДНС (выражение IN NS) для этой зоны. Как оказывается
он сам и будет.
9 запись типа " IN A 127.0.0.1" тоже сокращенная,
полный вариант описан чуть выше. Этой
строкой мы объясняем на какой ip-адрес
мы присваиваем имя localhost.
Итак, после такого конфига у нас должен
быть работающий кеширующий DNS-сервер.
Пробуем:
| root@localhost# rndc reload server reload successful root@localhost# echo "nameserver\t127.0.0.1" > /etc/resolv.conf root@localhost# host mail.ru mail.ru has address 194.67.57.126 mail.ru has address 194.67.57.226 mail.ru has address 194.67.57.26 mail.ru mail is handled by 10 mxs.mail.ru. |
В ответ на
команду "host" приходит ответ, значит
наш DNS на 127.0.0.1 работает. Вообщем, кеширующий
ДНС мы запустили.
Теперь самое время прописать какую-нибудь
зону. Например ounix.ru - домен второго уровня,
полностью принадлежит нам. Тогда в /etc/namedb/named.conf
вписываем:
| zone
"ounix.ru" { type master; file "ounix.ru"; allow-transfer { trusted;}; }; |
А в файле "ounix.ru" мы уже описываем нашу зону и все её поддомены, NS и MX записи:
| $TTL 38400 @ IN SOA ns1.ounix.ru. admin.ounix.ru. ( 2007102501 ;serial 108000 ;refresh 1800 ;retry 1209600 ;expiry 604800) @ IN NS ns1.ounix.ru. @ IN NS ns2.ounix.ru. @ IN MX 10 mail.ounix.ru. ; MX-записьнаподдомен mail, опишемчутьпозже @ IN A 195.91.211.84 ; Сама зона присваивается машине mail IN A 195.91.211.84 ; поддомен mail присваеваем ip ns1 IN A 195.91.211.84 ; поддомен ns1 тудаже ns2 IN A 195.94.224.129 ; авотподдомен ns2 уйдетнадругойсервер ftp IN A 195.91.211.84 www IN A 195.91.211.84 dark IN A 195.91.211.84 unix IN A 195.91.211.84 test IN A 195.91.211.84 jabber IN A 195.94.224.129 В работе описаны прямые зоны на localhost и на serv1
|
Хочется
обратить внимание что NS и MX записи могут
быть только на доменные имена, но никак
не на ip адреса. Если мы пишем имя хоста
полностью, обязательно ставим точку в
конце, в противном случае к записи без
точки добавляется имя зоны. Например,
"mail" тождественно "mail.ounix.ru."
Таким образом, мы описали зону на master-сервере
DNS. А как же вторичные сервера прописывают
у себя зоны? Вот так:
| zone "ounix.ru"
{ type slave; file "slave/ounix.ru"; masters { 195.91.211.84; }; }; |
Мы указали, что являемся подчиненным DNS сервером для этой зоны, что мастер у нас 195.91.211.84, что скачивать зону на ounix.ru надо с него, а хранить ее надо в /etc/namedb/slave/ounix.ru. И после перезапуска BIND-а, если нигде нет ошибок, на подчиненном сервере появится копия файла зоны ounix.ru
Настраиваем обратные зоны аналогично :
Установка
и конфигурирование
MySQL
MySQL - система управления базами данных (СУБД) очень популярная в веб-разработке. MySQL используется для хранения данных для многих популярных веб-приложений.
Установка MySQL
- Первым шагом является установка MySQL-сервера, для этого необходимо выполнить следующую команду:
sudo apt-get install mysql-server-5.1
Во время установки предлагается ввести пароль. Введенный пароль 111111. MySQL сервер готов для настройки и запуска. В данный момент, нет необходимости изменять конфигурационный файл MySQL, можно лишь добавить, что располагается он здесь /etc/my.cnf.
Настройка базы данных MySQL
Активизировать базу данных можно при помощи команды:
sudomysql_install_db
Далее, мы создадим базу данных и предоставим пользователям разрешений на использование баз данных. Для этого необходимо войти в MySQL:
mysql -uroot -p
После того как вы введете пароль root пользователя MySQL, вы сможете начать взаимодействие с MySQL сервером.
Для создания базы данных и предоставления пользователям привилегий, введите следующую команду. Обратите внимание, двоеточие (;) в конце линии означает завершение вводы команды. Команда должна выглядеть следующим образом:
create database test;
grant all on test.* to ’user’ identified by
’12345’; flush privileges;
В приведенном выше примере, test это имя базы данных, user - имя пользователя c паролем 12345. Обратите внимание, что база данных имен пользователей и паролей используются только подключения к базе данных. Использование этой базы не обязательно.
Мы завершили настройку MySQL и теперь вы можете передать учетные данные базы данных пользователям. Для выхода из администрирования MySQL введите следующую команду:
quit
Если необходимо
подключатся к базе удалённо необходимо
выполнить следующие действия:
| sudo vim /etc/mysql/my.cnf | |
Находим строку:
| bind-address = 127.0.0.1 | |
Комментируем
её, добавив # в начало строки:
| # bind-address = 127.0.0.1 | |
Сохраняем файл
конфигурации перезапускаем MySql:
| sudo /etc/init.d/mysql restart | |
Всё. Теперь к серверу MySQL можно подключаться извне.
Осталось создать пользователей которым разрешено удалённое подключение.
Запускаем консоль
MySql и входим под :
| mysql -uroot -p | |
Теперь создаём пользователя:
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'remote_addr' |
Вместо ’remote_addr’ укажите адрес хоста с которого планируется подключаться или можно указать ’%’тогда подключение будет разрешено с любого адреса, ’password’ пароль пользователя.
Для непривилегированного пользователя вместо ’GRANT ALL PRIVILEGES’ можно указать конкретные разрешённые операции, например:
| GRANT SELECT, INSERT, UPDATE,
DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARYTABLES, LOCK TABLES
ON *.* TO 'root'@'remote_addr' |
Так же можно
ограничить доступ к база и таблицам
указав вместо ’ON *.*’ - ’ON table’ или ’ON database.*’или ’ON
database.table’, где ’table’ - имя таблица, а ’database’ -
имя базу данных.
Например, нужен
пользователь без пароля работающий с
существующими таблицами в базе новостей,
который может создавать, удалять, обновлять
и делать выборку.
Программы на языке сетевых приложений Java для работы с MySQL-сервеом
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Main {
public static void main(
Class.forName("com.mysql.
- Connection con =
DriverManager.getConnection(" jdbc:mysql://10.0.2.1:3306/ " root", «111111"); //Создание соединения с сервером
Statement st = con.createStatement(); //Создание переменной выражения
st.executeUpdate("CREATEDATABASE myDB");
}}
Программа позволяет клиенту подключатся и создавать БД на сервере.

- Подключение к интернет
- Подключение сетей полевого уровня
- Подкорковые структуры головного мозг
- Подлежащее и сказуемое статистических таблиц
- Подлижащие и сказуимые
- Подмена ребёнка
- Подмена ребенка и незаконное усыновление
- Подземные инженерные сети
- Подземные каменоломни Парижа
- Подземные органы растений. Тропизм
- Подземный ремонт добывающих и нагнетательных скважин
- Поділ праці та організація суспільного виробництва
- Подільський район
- Подільський туристичний район