PHP уроки
ПРОСТО самая лучшая обучалка PHP!
  • Студия LPHPRU
  • Уроки PHP
  • Контакты
  • Помощь
Меню
  • PHP - с чего начать?
  • Уроки PHP
  • Функции PHP
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • JQuery уроки
  • Галерея
  • OpenCart
Календарь
Февраль (2023)
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728     
В продаже

  • Что нового?

    • Тест №2
    • Тест №1 для разработчиков
    • PHP 5.6 RC1
    • SQL. Как cкопировать данные одной колонки в другую, в той же таблице
    • GRUB изменить порядок загрузки OS в Linux
    • SSH - вход на сервер без ввода пароля
    • PhpMyAdmin - проблема с загрузкой большого файла на сервер
  • Комментарии

    • Hello
    • тут нечего не понятно
    • Может уже пора на WebStorm переходит...
    • Здравствуйте. 10 лет пользуюсь др...
    • Была такая проблема, решалась пе...
  • TOP-5

    • Метод POST (2945467 )
    • Привет, МИР! (910788 )
    • Метод GET (667156 )
    • Операторы (605670 )
    • Firefox уже запущен, но не отвечает... (352939 )

Как закинуть большой файл sql в базу данных?

Главная» Array » Как закинуть большой файл sql в базу данных?
PHP урок № 340
Перенос базы данных sql большого размера.
Бывают ситуации и они не редки, когда файл sql базы данных, т.е. дамп, имеет слишком большой размер. Как правило, максимальное время исполнения сценария на хостинге - 30 секунд. Памяти выделяется то же не много, примерно 128M. из-за чего нет возможности с помощью web-интерфейса, например, через утилиту phpMyAdmin, загрузить дамп базы данных (БД) и тем самым сформировать все таблицы с данными.
Есть простой и достаточно лёгкий способ, это всё обойти и загрузить дамп с помощью консоли, посылая серверу, команды удалённо со своего компьютера. Для этого будем использовать утилиту PuTTY. Она бесплатна и очень удобна.
Первым делом нужно определиться с доступом на сервер по протоколу FTP, это значит, что следует закинуть файл sql, который дамп, в главную директорию сайта, её ещё называют root. Это там где находятся все папки и файлы сайта. Смысл тут в том, чтоб у вас был доступ на исполнение команд для работы в этой директории, поэтому можно в принципе выбрать любую подходящую папку. Загрузите туда файл sql.
Теперь откройте PuTTY, вы увидите примерно следующее:
Рис.1
В поле Host Name впишите имя сайта (домен) или ip адрес. После чего нажмите Open.
Откроется консоль, так сказать терминал управления сервером. Хотя для того чтоб попасть на сервер следует ввести сначала логин и нажать Enter. Это, как правило, логин доступа по FTP, который предоставляет провайдер, а затем ввести пароль, то же от FTP доступа.
Имейте ввиду, что при вводе пароля, он не будет отображаться, просто введите его в слепую и нажмите Enter.
Рис. 2 Вводим логин.
Рис. 3 Вводим пароль.
После проделанных процедур, если вы всё указали правильно, будет открыт доступ на сервер.
Рис. 4 Доступ открыт, мы на сервере.
У вас логин будет другой, т.е. ваш. Логин, это та часть строки, что идёт перед знаком @, в данном случаи admin.
Далее следует перейти в ту директорию, где у вас сохранён sql файл базы данных. Для этого можно оглядеться где вы находитесь и определиться с папками в какую заходить. Директории на разных серверах некоторым образом всё-таки отличаются и здесь трудно сказать, как у вас расположены файлы. Хотя всё это легко узнать.
Команды Putty / SSH / Unix / Linux

Файловые команды

ls – список файлов и каталогов
ls -al – форматированный список со скрытыми каталогами и файлами
cd dir – сменить директорию на dir
cd – сменить на домашний каталог
pwd – показать текущий каталог
mkdir dir – создать каталог dir
rm file – удалить file
rm -r dir – удалить каталог dir
rm -f file – удалить форсированно file
rm -rf dir – удалить форсированно каталог dir *
cp file1 file2 – скопировать file1 в file2
cp -r dir1 dir2 – скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог - переместить file1 в каталог file2
ln -s file link – создать символическую ссылку link к файлу file
touch file – создать file
cat > file – направить стандартный ввод в file
more file – вывести содержимое file
head file – вывести первые 10 строк file
tail file – вывести последние 10 строк file
tail -f file – вывести содержимое file по мере роста, начинает с последних 10 строк

Управление процессами

ps – вывести ваши текущие активные процессы
top – показать все запущенные процессы
kill pid – убить процесс с id pid
killall proc – убить все процессы с именем proc *
bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg – выносит на передний план последние задачи
fg n – вынести задачу n на передний план

Права доступа на файлы

chmod octal file – сменить права file на octal, раздельно для пользователя, группы и для всех добавлением:
? 4 – чтение (r)
? 2 – запись (w)
? 1 – исполнение (x)
Примеры:
chmod 777 – чтение, запись, исполнение для всех
chmod 755 – rwx для владельца, rx для группы и остальных.
Дополнительные опции: man chmod.

SSH

ssh [email protected] – подключится к host как user
ssh -p port [email protected] – подключится к host на порт port как user
ssh-copy-id [email protected] – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

Поиск

grep pattern files – искать pattern в files
grep -r pattern dir – искать рекурсивно pattern в dir
command | grep pattern – искать pattern в выводе command
locate file – найти все файлы с именем file

Системная информация

date – вывести текущую дату и время
cal – вывести календарь на текущий месяц
uptime – показать текущий аптайм
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о user
uname -a – показать информацию о ядре
cat /proc/cpuinfo – информация ЦПУ
cat /proc/meminfo – информация о памяти
man command – показать мануал для command
df – показать инф. о использовании дисков
du – вывести “вес” текущего каталога
free – использование памяти и swap
whereis app – возможное расположение программы app
which app – какая app будет запущена по умолчанию

Архивация

tar cf file.tar files – создать tar-архив с именем file.tar содержащий files
tar xf file.tar – распаковать file.tar
tar czf file.tar.gz files – создать архив tar с сжатием Gzip
tar xzf file.tar.gz – распаковать tar с Gzip
tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 – распаковать tar с Bzip2
gzip file – сжать file и переименовать в file.gz
gzip -d file.gz – разжать file.gz в file

Сеть

ping host – пропинговать host и вывести результат
whois domain – получить информацию whois для domain
dig domain – получить DNS информацию domain
dig -x host – реверсивно искать host
wget file – скачать file
wget -c file – продолжить остановленную закачку

Установка пакетов

Установка из исходников:
./configure
make
make install
dpkg -i pkg.deb – установить пакет (Debian)
rpm -Uvh pkg.rpm – установить пакет (RPM)

Клавиатурные сочетания

Ctrl+C – завершить текущую команду
Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D – разлогиниться, тоже самое, что и exit
Ctrl+W – удалить одно слово в текущей строке
Ctrl+U – удалить строку
!! - повторить последнюю команду
exit – разлогиниться

Вводим команду ls -al – форматированный список со скрытыми каталогами и файлами и видим полный список папок и файлов. Далее выбираем в какую папку заходить, т.е. где у вас лежит sql файл, команда cd dir – сменить директорию на dir. Но вряд ли у вас на сервере будет названа так главная директория, скорей всего htdocs или что-то в этом роде, команда будет выглядеть cd htdocs.

Команда ls -al выводит все папки и файлы в директории

Команда cd htdocs - переход в директорию htdocs

В конечном итоге мы добрались до папки с дампом базы данных, который находится на сервере. Теперь основное действие. Требуется развернуть дамп прямо в БД, для этого следует выполнить команду такого типа:

mysql --user=login_mysql --database=name_db -p < damp.sql

Ну вот и всё, если правильно всё сделали, база данных уже готова к работе. Этот урок дольше читать, чем выполнить все эти действия, когда уже знаешь, что делать.
Как разархивировать файл с расширением sql.gz
Выше я рассказывал о файле дампа, который не архивирован. Но нет смысла распаковывать файл из архива на локальном компьютере, или правильнее сказать не зачем отсылать по сети файл большего веса, если его можно сжать в архив. Причём сжатие происходит сразу когда вы скидываете дамп из MySQL. При этом конечно нужно указать нужные настройки экспорта дампа из MySQL. Ниже на рисунке показано как должна выглядеть страница phpMyAdmin перед экспортом базы данных в сжатом виде, на выходе получаем архив damp.sql.gz
Рис. 5
Экспорт базы данных
Загружаем архив на сервер. Далее процедура поиска и захода в командную строку сервера (инструкция выше).
Для того чтоб разжать этот архив следует использовать такую команду:
gzip -d damp.sql.gz
Ну думаю понятно, что названия архива damp у вас может быть своё. После выполнения этой команды произойдёт разархивация и останется один лишь файл damp.sql. Архив будет удалён. Теперь можно развернуть базу данных, как описано выше.
В этом примере был использован файл базы данных объёмом 194.13 Кб - это не большой вес. Архив damp.sql.gz весил всего 41.8 Кб - это почти в 4.5 раза меньше! Так что есть смысл в архивации крупных файлов.
Как запустить файл PHP из командной строки сервера.
Что такое командная строка мы определились выше. И доступ к командной строке сервера, в нашем примере, мы получаем по протоколу SSH с помощью программы PuTTY.
Теперь нужно определиться чем мы будем запускать, или правильнее сказать исполнять, файл php находящийся на удалённом сервере. Ответ прост, нужно узнать где находится на вашем сервере сам обработчик для PHP.
Для этого можно обратиться к хостеру или например зайти в панель управления и посмотреть там. Обычно это связано с CRON так называемая функция "Планировщик задач" или что то в этом роде, почитать FAQ как им пользоваться и там возможно найдёте эти команды. Например на HC.RU это выглядет так:
Доступные обработчики*:

1. /usr/local/apache/bin/php-cgi - Обработчик PHP версии 4
2. /usr/local/apache/bin/php-cgi.4.4 - Обработчик PHP версии 4.4
3. /usr/local/apache/bin/php-cgi.5 - Обработчик PHP версии 5
4. /usr/bin/perl - Perl
5. /usr/local/bin/python - Python
Копируем нужную нам строку и вставляем в командную строку, примерно так:
/usr/local/apache/bin/php-cgi.5 name.php
Здесь name.php - файл который нужно исполнить.
На самом деле так файл не запуститься, сервер выдаст ошибку примерно такую:
Status: 404 Not Found
Content-type: text/html

No input file specified.
То есть сервер нам говорит, что такого файла нет. Для того чтоб запустить правильно файл, нужно указать полный путь от корневого каталога сервера. Для это выполните команду:
pwd
Это и будет полный путь от корня до того места на сервере где вы сейчас находитесь. Скопируйте его выделив и нажав правую кнопку мыши. После не хитрых манипуляций и составления полной команды, у меня получилось так:
/usr/local/apache/bin/php-cgi.5 /www/pozivp/users/poi-boo/www/test/name.php
Сейчас всё должно работать. Если не получилось пишите, подскажу.
Совет
Просмотрите внимательно команды. это очень удобный, безопасный, надёжный и быстрый способ удалённой работы с сервером по протоколу SSH.

Протокол FTP отправляет данные по сети в не зашифрованном виде, поэтому создаётся большая вероятность утери данных и проникновения на ваш сайт.
Урок закончен.
SETTER © LPHP.RU
Администрация сайта
Array
  • lphp.ru © 2009-2023