Forum Webscript.Ru

Общие => Базы данных => Тема начата: AZone от 20 Декабря 2002, 20:54:50

Название: Экспорт БД (*.sql) на сервер
Отправлено: AZone от 20 Декабря 2002, 20:54:50
Вопрос: у меня есть следующие данные - имя базы, имя пользователя, пароль и имя хоста (кажется, в этом случае лучше использовать IP хоста. Я прав?). Также имеется файл *.sql - кторый является back-up\'ом. Так вот, как мне его установить на сервер, обладая только этими данными? (то есть нет ни phpMyAdmin, ни другого аналога, вообще больше ничего нет).

Буду очень благодарен за быстрый ответ.
Название: Экспорт БД (*.sql) на сервер
Отправлено: Chs от 20 Декабря 2002, 20:59:31
Шелл есть?
Название: Экспорт БД (*.sql) на сервер
Отправлено: AZone от 20 Декабря 2002, 21:24:18
Ничего нет. И на сервере ничего нет. То есть я могу использовать только то, что можно установить на мой компьютер. И я ничего не умею, кроме как в phpMyAdmin нигде больше не ходил и командной строкой не пользовался и вообще любитель жалкий...
Помогите!
Название: Экспорт БД (*.sql) на сервер
Отправлено: Chs от 20 Декабря 2002, 21:46:45
Дамп базы большой?
Название: Экспорт БД (*.sql) на сервер
Отправлено: AZone от 20 Декабря 2002, 22:15:22
Дамп... Что это?
Название: Экспорт БД (*.sql) на сервер
Отправлено: Chs от 20 Декабря 2002, 22:20:51
Файл - *.sql большой?
Название: Экспорт БД (*.sql) на сервер
Отправлено: Chs от 20 Декабря 2002, 22:29:30

#!/usr/bin/perl
#########################
# Chs [url]http://chs.now.at[/url] #
# loadmsql.cgi                             #
#########################
use strict;
use CGI qw(param);
use CGI::Carp qw(fatalsToBrowser);
use DBI;

sub DBconnect()
{
my $db_host = "localhost";
my $db_name = "wakka";
my $db_user = "root";
my $db_pass = "";
my $dbh;

if ($db_user ne \'\')
{
$dbh = DBI-> connect("DBI:mysql:database=$db_name;host=$db_host",$db_user,$db_pass,{RaiseError=>1});
}
else
{     $dbh = DBI-> connect("DBI:mysql:database=$db_name;host=$db_host",{RaiseError=>1});
}

return $dbh;
}

$| = 1;

print "Content-type:text/plain\\n\\n";
my $file = param(\'file\');
open(INP, "< ".$file) || die($!);

my $dbh = DBconnect();

my $cmd = "";


while()
{
next if (m/^#/);
if (m/;/)
{
my @parts = split(/;/);
$cmd .= shift @parts;
#exec sql
print "Executed:".$cmd."\\n" if ($dbh-> do($cmd));
$cmd = shift(@parts) || "";
}
else
{
$cmd .= $_;
}
}
close INP;

print "Done.\\n";


Значит так - вот скрипт, который закачает базу.
В нем нужно поменять настройки в DBconnect:
   my $db_host = "localhost";
   my $db_name = "wakka";
   my $db_user = "root";
   my $db_pass   = "";
Хост, имя базы, пользователь, пароль.
Файл закачать вместе со скриптом на сервер
и вызвать скрипт http://myhost/cgi-bin/loadmsql.cgi?file=out.sql
Название: Экспорт БД (*.sql) на сервер
Отправлено: Foshvad от 20 Декабря 2002, 23:06:20
ух-ты, а на PHP такое сть?
Название: Экспорт БД (*.sql) на сервер
Отправлено: AZone от 20 Декабря 2002, 23:07:29
Великолепно, но на хостинге запрещено использование CGI скриптов для меня... Может, и правда на PHP есть?

Кстати, файл = 1MB
Название: Экспорт БД (*.sql) на сервер
Отправлено: Chs от 20 Декабря 2002, 23:31:43
На PHP - это к PHP-стам.:))
Может напишет кто.:)
Название: Экспорт БД (*.sql) на сервер
Отправлено: AZone от 20 Декабря 2002, 23:56:48
ОК. А других методов нет?

А вот это что:
$sql = explode(";", implode("", file("./mysql_schema.".$sqlEx)));
for ($i = 0; $i < count($sql); $i++) mysql_query($sql[$i]) or die(mysql_error());


?
Название: Экспорт БД (*.sql) на сервер
Отправлено: Maniac от 23 Декабря 2002, 21:37:19
Цитировать
А вот это что:

Это кусок кода на PHP, который загоняет дамп в твою БД