Настройка скриптов для импорта баз данных в mysql

Sunday, 17 Jul 2011

Данный пост является продолжением темы с импортом больших баз данных в mysql и здесь я расскажу как именно надо настроить скрипт для импорта базы данных.

Процедура установки обоих скриптов проста и начинается с их редактирования, после чего скрипты закачиваются на хост, куда, в ту же папку, кладется и выгрузка из базы данных, которую нам необходимо импортировать в новую базу на сервере mysql. На скрипт устанавливаем права доступа 755.
Теперь немного подробнее о настройке каждой из программ:

1. BigDump
Открываем файл скрипта bigdump.php, в котором отыскиваем и меняем следующие строки на необходимые значения
$db_server   = ‘localhost’;
$db_name     = ‘DB_NAME’;
$db_username = ‘DB_USER’;
$db_password = ‘DB_PASSWORD’;
$filename           = ‘OUR_DUMP.SQL’; /* Наш дамп базы данных который мы выгрузили вместе со скриптом*/
$db_connection_charset = ‘Charset’; /*Поскольку мы работаем с русскими базами, то вероятнее всего это utf8 или cp1251*/

После этого открываем в бродилке скрипт хттп://наш-сайт/папка/bigdump.php и видим свой файлец, после чего наживаем на линк Start import

2. Sypex Dumper
С этим скриптом еще проще, так как у него есть графический интерфейс, через который можно вводить все данные, а также делать экспорт и импорт баз данных. Собственно заливаем файлец скрипта dumper.php на хостинг, но с одной оговоркой- опять же в плане кодировок. По умолчанию скрипт работает с cp1251, так что если надо залить utf-8, то добавляем в следующую строку параметр принудительной замены кодировки:
define(‘RESTORE_CHARSET’, ‘forced->utf8′);

После чего коннектимся через бродилку хттп://наш-сайт/папка/dumper.php
вводим логин на базу данных сайта и получаем возможность как импортировать нужную нам базу данных, так и экспортировать.

VN:F [1.9.21_1169]
Rating: 10.0/10 (8 votes cast)
VN:F [1.9.21_1169]
Rating: +4 (from 4 votes)

Как импортировать большую базу данных в mysql

Sunday, 17 Jul 2011

Бывает возникает ситуация, в которой необходимо загрузить на сервер хостинга базу данных больше разрешенного хостингом в утилите управления базами данных phpMyAdmin- обычно этот предел установлен в  ~2Mb. Если это случается на виртуале, то обычно просто заливаю базу через ftp и прошу суппорт хостинга помочь в данном вопросе.

Поскольку использую нормальные хостинги, то решение это проблемы занимает всего 10-15 минут, так что особо не парился, но тут столкнулся с тем что возникла необходимость подсказать человеку у которого суппорт курил бамбук, так что выделилось несколько вариантов решения данной проблемы. Оговорюсь сразу что наиболее удобен для импорта базы данных mysql последний вариант, но он подходит только тем у кого есть доступ к терминалу. Так что в статье описаны все возможные способы импорта большой базы данных в mysql, кроме общения с суппортом.

1. Варинт первый – выгружаем бэкап базы не целиком, а по несколько таблиц, чтобы файл не превышал наши лимиты. Основной минус данного решения- это то, что операцию выгрузки- загрузки необходимо будет проводить много раз, так что подойдет исключительно для тех у кого много свободного времени и нечем заняться на досуге.

2. Вариант второй – выгружать в пожатом состоянии- так как степень сжатия для текстового файла будет максимальной. Но тут опять же можно столкнуться с тем, что на хостинге не установлена поддержка архиваторов.

3. Используем сторонний скрипт, который позволяет производить экспорт и импорт базы данных, минуя общение с phpMyAdmin. Наиболее известный из имеющихся в наличии, и к тому же наиболее хорошо работающий- это BigDump. О том как его настроить – я отписался чуть позже, так что это касается и настройки по 5му пункту.

4. Как частный случай 3 вариант, возможно залить на сервер эмулятор терминала и сделать 5 пункт через него. Например можно попробовать PHPterm, но в этом варианте можно столкнуться с ограничениями хостинга в плане безопасности запуска команд и скриптов.

5. Также есть простенькая программка аналогичная BigDump, которая также позволяет импортировать большие базы данных, только в данном случае необходим Zend Optimizer либо Nu-Coder. Программка называется Sypex Dumper, и вторую версию скрипта можно даже интегрировать в наиболее популярные CMS. На сайте есть как платная утилита, так и облегченная бесплатная версия.

6. Если таки имеется доступ к консоли, то можно добавить в php.ini следующие строки (увеличиваем лимит загрузки файлов по времени и размеру), после загрузки, лучше вернуть все назад, чтобы не нагнули сервак с оказией:
max_execution_time = 20000
max_input_time = 20000
upload_max_filesize = 150M
post_max_size = 150M

7. Но на самом деле наиболее быстрым и оптимальным вариантом загрузки большой базы данных, имея доступ к консоли, будет загрузить дамп базы данных dump.sql через ftp, а затем залить её через консоль ssh:
mysql -h hostname -u user-name -p DB_name <  /path-to-dir/dump.sql
если у вас в качестве хоста базы данных используется стандартный localhost , то ключик -h можно и опустить, так что получится вида:
mysql -u user-name -p DB_name <  /path-to-dir/dump.sql

Да, чуть не забыл про самые поганые грабли всей пляски с импортом- при импорте базы данных могут возникнуть проблемы с кодировками, поэтому нам надо убедиться что дефолтная база и выгрузка sql находятся в одной кодировке, либо переконвертировать базу данных в стандартную для mysql кодировку (обычно это utf-8):
iconv -f CP1251 -t UTF-8 dump.sql > dump.sql.utf8
либо указать необходимую кодировку при процедуре импорта базы данных:
mysql -h hostname -u user-name -default_character_set utf8 -p DB_name <  /path-to-dir/dump.sql

VN:F [1.9.21_1169]
Rating: 8.3/10 (34 votes cast)
VN:F [1.9.21_1169]
Rating: +6 (from 8 votes)

Установка нескольких CMS на одну базу данных

Sunday, 03 Jul 2011

В очередное раз столкнулся с вопросом человека- как быть если прикупил себе нищебродский хостинг, позволяющий разместить 5 доменов, и всего одну базу mysql. Я конечно с трудом понимаю кто эти люди, которые приобретают подобные варианты, и главное где они их находят и по какой цене, учитывая что анлим с 4 IP стоит меньше 190 рублей в месяц.

Но как водится выход есть даже из самой жопской ситуации. То есть если вам необходимо завести пяток сайтов в одной базе, то это возможно сделать. Но надо учитывать несколько моментов:

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

Если вы все же решили что оно того стоит, то создаем базу данных средствами хостинга, после чего закачиваем нужное количество копий wordpress на хостинг, подключаем домены и запускаем установку CMS WordPress, где для каждой установки указываем различные table_prefix: wp_ ; wp1_; wp2_ и т.п, которые после копируем в файл wp-config.php (в самом файле для копии wordpress эта строка будет выглядеть $table_prefix = ‘wp_’; )

Точно такое же действие подойдет и для других CMS:
в Drupal прописываем в файл sites/default/settings.php аргумент $db_prefix = ‘drupal1_’;
в Joomla в файле configuration.php указываем var $dbprefix = ‘joomla1_’;
После того как запустим установку CMS все необходимые таблицы, с указанными префиксами создадутся установочными скриптами.

VN:F [1.9.21_1169]
Rating: 7.9/10 (10 votes cast)
VN:F [1.9.21_1169]
Rating: +1 (from 5 votes)

Установка сервера баз данных mySQL на CentOS

Friday, 10 Jun 2011

Собрат по цеху озадачил вопросом относительно того, что прикупил у Hostgatora минимальный и самый дешевый VPS по цене всего в 16$ за 384Mb памяти на борту и естественно unmanаged, причем из управления там стоит только Parallels Virtuozzo позволяющая доставлять сервисы и управлять ими, а также лазить по ssh через бродилку и рулить фаерволом. Но вот поставить мускуль у него получилось не очень здорово, так что был вынужден расписывать в аську последовательность действий, как и что делать что установить сервер mysql под CentOS.

Собственно там ничего сложного, особенно если стоит линуксовый установщик yum. Если его естественно нет, то делаем все по старинке:
$ mkdir /usr/local/yum
$ cd /usr/local/yum
$ wget http://linux.duke.edu/projects/yum/download/2.0/yum-2.0.7.tar.gz
$ tar xvzf yum-2.0.7.tar.gz
$ cd yum-2.0.7
$ ./configure
$ make && make install

после чего продолжаем будто yum у нас уже стоял:
$ yum install mysql
$ yum install mysql-server
$ yum install mysql-devel
$ chgrp -R mysql /var/lib/mysql
$ chmod -R 770 /var/lib/mysql
$ service mysqld start

После этого загоняем мускуль в автозагрузку:
$ chkconfig mysqld on && service mysqld restart && chkconfig –list | grep mysqld
После этого задаем пароль для рутового пользователя сервера баз данных:
/usr/bin/mysqladmin -u root password ‘Password’
Затем переходим к созданию необходимой базы данных и пользователя:
$  mysql -u root -p
mysql> CREATE DATABASE ИмяБазы;
mysql> USE  ИмяБазы;
mysql> GRANT ALL PRIVILEGES ON *.* TO Юзер@localhost  IDENTIFIED BY ‘ПАРОЛЬ’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> \q

После чего можно радоваться тому факту что на нашем дешевом VPS теперь крутится движок баз данных mySQL.

VN:F [1.9.21_1169]
Rating: 9.8/10 (10 votes cast)
VN:F [1.9.21_1169]
Rating: +3 (from 3 votes)

Создание резервной копии сайта через ftp

Tuesday, 31 May 2011

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

Так что когда  возникла необходимость перенести сайт, служивший предметом торга, с его хостинга на новый хостинг вышеупомянутых барышень, товарищ мне предоставил только ftp доступ, сказав что ипитесь сами, так что пришлось немного пораскинуть мозгами- но не особо далеко.

Собственно для того чтобы сделать резервную копию сайта- нам необходимо два типа данных- собственно содержимое домашней директории сайта и выгрузка базы данных. Сайт мы копируем по ftp, используя стандартные механизмы протокола, единственно не забывая о том, что если на сайте присутствуют русские имена файлов, то нам необходим ftp-клиент поддерживающий кодировку utf8 (об этом я как раз писал накануне).

Для того же чтобы выкачать базу- нам понадобится утилита управления серверов mysql – phpmyadmin. Естественно, что можно скопировать сайт используя например встроенные утилиты- например для того же Drupal, но во первых они не всегда корректно копируют базу, а во вторых у того пользователя который был у меня на момент выгрузки данных- не было прав на использование этого модуля.

Так что пришлось таки биться с phpMyAdmin. Качаем утилиту с официального сайта, разархивируем её себе на компьютер и редактируем файл конфигурации, предварительно ознакомившись с файлом конфигурации сайта имеющейся резервной копии, на предмет выяснения паролей и явок связи сайта с базой данных. Собственно у каждого движка его расположение свое собственное, поскольку я переносил друпальный сайт, то в моем случае его местоположение было sites/all/default.

Создаем конфиг-файл config.inc.php, из имеющегося config.sample.inc.php, и заполняем строчку
$cfg['blowfish_secret'] = ‘ba17c1ec07d65003′;  // use here a value of your choice
произвольным кодом, который нам будет нужен для аутентификации по кукам. Также мы можем поменять тип аутентификации, в строчке
$cfg['Servers'][$i]['auth_type'] = ‘cookie’;
например на аутентификацию по http, что бы при обращении к странице сразу выскакивал логин-промт:
$cfg['Servers'][$i]['auth_type'] = ‘http’;

Помещаем файл в корневую директорию phpmyadmin. После этого загружаем все содержимое каталога  в подпапку, например phpmyadmin, корневого раздела сайта и заходим через бродилку http://сайт//phpmyadmin. Вводим логин который мы достали из конфига CMS и вуаля- “мы уже а Хопре!”

Вероятнее всего при заходе через бродилку у вас будет ругань следующего содержания: «Расширение mcrypt не найдено. Пожалуйста, проверьте ваши настройки PHP», но её мы просто игнорируем. Также в этой ситуации придется забить и на все остальные варнинги, как то отсутствие библиотеки mbstring, которая также ставится из консоли, и всевозможные опции для утилиты phpmyadmin.

Поэтому проходим в экспорт и цинично сливаем базу данных, выбрав доступный формат сохранения базы данных- как минимум sql.

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Восстановление пароля Joomla к MySQL

Thursday, 28 Jan 2010

До знака «***» читать не обязательно, поскольку это не относится никаким образом к делу, а всего лишь является стоном автора, многократно подтверждающим старую фразу: хочешь запороть дело, поручи его кому нибудь еще.

Год уже работаю с различными буржуинскими хостингами, и очень они мне нравятся во всем: удобство, поддержка, обслуживание, цены, скорости. Поддержка вообще прекрасна- поскольку у большинства из них имеется лайв-чат, что не так, помогут почти мгновенно, или хотя бы просто быстро. Но это если что то простое или стандартное. А вот если возникают какие то сложности, то тогда почти всегда выходило так, что мне быстрее было допетрить самому чем долго и занудно общаться с суппортом. Вот и сейчас- полтора часа ушли на объяснения что и почему и как не работает, консультации с админами на их стороне и прочее, и только когда понял, что со мной работают наотъебись™ , немножко включил мозг- в итоге сделалось все за 5 минут. :-/ Кто вернет полтора часа? Но ладно- это так

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

Вообщем используя Fantastico я снес сайт крутившийся на Joomla.

(more…)

VN:F [1.9.21_1169]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.21_1169]
Rating: +2 (from 2 votes)

Установка сервера БД MySQL

Wednesday, 30 Dec 2009

Сейчас, в преддверии всяких разных настроек, типо почтарей, шейперов, сислогов и прочее, мы будем ставить open-sourse сервер БД от компании Sun MySQL. С использованием MySQL работа этих сервисов упрощается и функционирование значительно ускоряется. Писать о мускуле можно бесконечно, посему я этого делать не буду, если есть желание почитать, то это можно сделать на оффсайте. Естественно предполагается, что перед установкой, мы полностью заточили систему и обновили порты.

Итак установка мускуля. Ставить будем, актуальную на данный момент, версию MySQL 5.1.41. Существует три вида подобной установки и я пойду сверху вниз по мере усложнения.

(more…)

VN:F [1.9.21_1169]
Rating: 4.0/10 (1 vote cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)