MySQL - базы данных
Наши пользователи могут использовать СУБД MySQL на своих виртуальных веб-серверах в рамках, предусмотренных соответствующими тарифами. Работающая в данный момент версия - 4.0.x. Основная кодировка базы - cp1251, дополнительно поддерживается также кодировка koi8-r (koi8_ru - в терминологии MySQL).
что такое "базы данных" вообще и MySQL в частности
Под базами данных (БД) понимаются системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Существует множество различных систем управления базами данных (СУБД), но в условиях хостинга как правило применяется СУБД . Причинами тому являются фактическая ориентация этой СУБД на хостинговые задачи, доступность на всех популярных серверных операционных системах, а также простота настройки и администрирования.
Выбирая между различными СУБД нужно учитывать, что если ваш веб-проект не отличается особой на него нагрузкой и сложностью решений, а вы, как программист и администратор, не обладаете достаточной квалификацией и опытом в работе с различными СУБД, альтернатив MySQL для вас в этом случае не очень много и наверняка стоит остановить выбор именно на MySQL. Адресуем вас к статье на сервере hostinfo.ru, где вы в подробностях узнаете о плюсах и минусах именно этой системы. Также на сайте разработчиков .
параметры и способы соединения с MySQL
- Имя хоста (сервера), на котором размещен MySQL: webdomain.com.ru
- Порт: 3306
- Логин: соответствует названию виртуальной площадки - uXXXXX
- Пароль: указан в письме, которое пользователь получает при регистрации
- Имя базы данных
В целях безопасности прямой доступ к серверам MySQL из интернет закрыт (исключение составляет ssh-туннель, ), а клиентам предоставляются следующие возможности администрирования и использования БД:
- доступ к командной строке MySQL из
- работа с БД из скриптов пользователя на , и т.д.
- управление базой через веб-интерфейс . Реквизиты доступа сообщаются при регистрации, логин и пароль совпадают с реквизитами доступа к самой базе данных
SSH-туннелирование для соединения с удаленной базой данных MySQL
Используем ПО: Putty v.0.56 (последний стабильный релиз)
Рис.1
Первоначальные установки удаленного соединения:
- Host Name: webdomain.com.ru - Хост для соединения по SSH.
- Port: 22
- Protocol: SSH
Далее переходим в закладку "Tunnels", как показано на следующем рисунке, используя данные параметры для подключения:
- Source Port: 3306 - порт для локального подключения после установки туннеля.
- Destination: Local - указываем явным образом, что подключение будет осуществляться на локальный порт, указанный выше.
- Destination: webdomain.com.ru:3306 -Хост с которым будет осуществляться туннелирование по определенному порту (3306 - стандартно для MySQL)
Рис.2
Теперь необходимо добавить настройки в меню Forwarded ports нажатием кнопки "Add", как показано на рисунке ниже, для достижения следующего результата:
Оригинальная документация доступна на .
Рис.3
Настройка закончена, переходим в первое меню "Session", как на рисунке 1, и нажимаем кнопку "Open" для установки соединения с удаленным сервером по протоколу SSH. Проходим авторизацию по логину и паролю, и попадаем в bash, находясь локально на Вашей площадке /home/uXXXX. Тем временем, согласно нашим настройкам, происходит туннелирование соединения c локальным MySQL сервером, используя SSH протокол и внутренние средства Putty. Таким образом, соединяясь на локальный порт localhost:3306 и используя любое ПО для работы с MySQL сервером, мы получаем доступ к администрированию удаленной базы данных, одновременно защищая свое соединение по протоколу SSH.
phpMyAdmin - доступ к MySQL через веб-браузер
Для доступа к MySQL из обычного веб-браузера клиенты могут воспользоваться инструментом phpMyAdmin. Для этого обратитесь к странице .
Реквизиты доступа к нему высылаются автоматически на контактный адрес, с момента приобретения тарифного плана с поддержкой БД MySQL.
phpMyAdmin - некоммерческое приложение, написанное на языке PHP, реализующее довольно удобный и функциональный Web-интерфейс к базе данных Mysql. Подробное справочное руководство по phpMyAdmin вы можете посмотреть по адресу:
Для входа в интерфейс вам необходимо ввести:
- Логин: соответствует названию виртуальной площадки - uXXXXX
- Пароль: указан в письме, которое пользователь получает при регистрации
Импорт и экспорт данных MySQL
Экспорт и импорт данных в MySQL обычно требуется при переносе информации из одной базы данных MySQL в другую и для осуществления резервного копирования.
Резервное копирование данных носит чисто технологический характер. Это означает, что в случае какого-либо программного или аппаратного сбоя оборудования, мы сможем восстановить актуальные данные клиента. Мы гарантируем сохранность самих данных, а не их резервных копий. Однако, при наличии резервной копии на необходимую дату, мы готовы пойти навстречу клиенту и восстановить утерянные по неосторожности данные. Для это необходимо податься заявку на свободную тему в службу .
Единственный способ быть уверенным в 100% восстановлении данных - самостоятельно выполнять регулярное резервное копирование информации. Для этого необходимо воспользоваться утилитой
mysqldump, которая доступна через .
Пример команд для экспорта и импорта базы данных:
> mysqldump -uимя_пользователя -p -hимя_сервера_БД имя_базы > dump.sql
Данные будут сохранены в файле dump.sql. Далее (в случае необходимости) восстанавливаем данные из резервной копии (дампа) так:
> mysql -uимя_пользователя -p -hимя_сервера_БД имя_базы < dump.sql
Запускаемые указанным образом утилиты для работы с MySQL будут запрашивать пароль к базе данных. Нужно вводить пароль соответствующего пользователя БД. Если пароль был утерян, вы можете самостоятельно изменить его в панели управления.
Дополнительные опции утилиты mysqldump:
--add-drop-table - опция, которая добавляет команду DROP TABLE перед созданием таблиц. Перед восстановлением таблиц из дампа, таблицы с таким же именем в рабочей базе данных будут удалены и пересозданы из резервной копии. Рекомендуется использовать для предотвращения возможных ошибок после восстановления;
--add-locks - опция, котрая добавляет команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы. Применяется для ускорения доступа к MySQL;
Опции
--quick и
--opt рекомендуется использовать, если база данных MySQL слишком большая для того, чтобы целиком поместиться в памяти.
При этом утилита mysqldump выдает ошибку:
mysqldump: Out of memory (Needed XXXXX bytes)
mysqldump: Got error: 2008: MySQL client run out of memory when retrieving data from server
В итоге строчка для создания копии базы данных получается следующей:
> mysqldump --opt -uимя_пользователя -p -h имя_сервера_БД --add-drop-table имя_базы > dump.sql
либо такой:
> mysqldump --quick -uимя_пользователя -p -hимя_сервера_БД --add-drop-table имя_базы > dump.sql
как работать с MySQL из скриптов на Perl
Для работы с MySQL из Perl-скриптов как правило используют модуль . Это позволяет удобно открывать и закрывать соединения к СУБД, подготавливать и выполнять запросы к базе, обрабатывать ошибки и так далее. Если вы не имеете опыта работы с MySQL из Perl, рекомендуем вам книгу "Программирование на Perl DBI" (, ).
Итак, пример работы с MySQL из Perl DBI:
#!/usr/bin/perl
use DBI;
my $host = "webdomain.com.ru"; # вымышленный MySQL-сервер
my $port = "3306"; # порт, на который открываем соединение
my $user = "u12345"; # имя пользователя (вымышленное)
my $pass = "password"; # пароль
my $db = $user; # имя базы данных - по умолчанию равно имени пользователя
print "Content-type: text/html\n\n";
$dbh = DBI->connect("DBI:mysql:$db:$host:$port",$user,$pass);
$sth = $dbh->prepare("select field1 from table2"); # готовим запрос
$sth->execute; # исполняем запрос
while ($ref = $sth->fetchrow_arrayref) {
print "$$ref[0]\n"; # печатаем результат
}
$rc = $sth->finish; # закрываем
$rc = $dbh->disconnect; # соединение
В этом примере мы сначала определяем переменные с параметрами доступа к MySQL, далее выдаем HTTP-заголовок, так как это у нас скрипт для запуска через веб, задее соединяемся с базой, подготавливаем и отправляем select-запрос, получаем и печатаем результаты, после чего закрываем соединение. Это простейший скрипт для работы с MySQL из Perl. Более подробные примеры вы можете найти .
как работать с MySQL из скриптов на PHP
Для работы с MySQL вы можете использовать встроенный в язык PHP средства, поддержка которых уже осуществляется на хостинге. PHP имеет развитый и понятный интерфейс к этой СУБД, что делает работу с MySQL именно из PHP наиболее простой и удобной особенно для начинающих веб-мастеров и веб-программистов.
# соединяемся с сервером и выбираем свою базу данных
mysql_connect("webdomain.com.ru","user","password");
mysql_select_db("database");
# готовим и выполняем запрос к БД
$query = "SELECT * FROM table";
$result = mysql_query($query)
or die(mysql_error());
# выводим результаты выполнения запроса
while($i = mysql_fetch_row($result)) {
echo $i[0];
echo $i[1];
.....
}
Полная документация на русском языке по работе с MySQL из PHP-скриптов находится . Кроме описаний, там же вы найдете советы опытных пользователей и примеры использования функций, упоминаемых в документации. Также рекомендуем вам статью на сервере hostinfo.ru.
дополнительная документация и полезные ссылки
MySQL является самой популярной среди разработчиков СУБД. Популярность ее сопровождается и наличием исчерпывающей и очень качественной документации. Научившись пользоваться ею, вы не будете иметь проблем с доступом к качественным описанием нужных возможностей MySQL.
- - mysql.com, русский язык
- - hostinfo.ru
»