Forum Webscript.Ru

Программирование => Perl => Тема начата: Phoinix от 20 Мая 2003, 18:53:05

Название: Еще вопрос по Perl+MySQL
Отправлено: Phoinix от 20 Мая 2003, 18:53:05
Никак не можем победить своего провайдера... :-(((

Пытаюсь подконнектиться к базе, все проходит нормально, создаю таблицы, тоже нормально, но при запросе:

  $dbh -> do("LOAD DATA INFILE
                  \'$path_base_mysql$category_base\'
              INTO TABLE
                  $category_table_mysql
              FIELDS TERMINATED BY \'|\'");

выдает ошибку...

DBD::mysql::db do failed: Access denied for user: \'user@localhost\' (Using password: YES) at /home1/myhost/cgi-bin/test.pl line 251.

В чем может быть проблема???

P.S.
у меня на локальном сервере под w2k все работает нормально.
$category_table_mysql - таблица создана, $path_base_mysql$category_base - файл на месте, т.е. находится скриптом.
соответствие полей текстового файла и таблицы MySQL тоже нормальное...
Такое чувство, что мне не даны права на добавление записей в базу через обычного пользователя...
Название: Еще вопрос по Perl+MySQL
Отправлено: NeoNox от 20 Мая 2003, 19:00:32
Возможно и такое. У хостера бы спросил...
Название: Еще вопрос по Perl+MySQL
Отправлено: Phoinix от 20 Мая 2003, 19:05:30
Он уже ушел домой... :-((( будем добивать уже завтра...
Название: Еще вопрос по Perl+MySQL
Отправлено: Phoinix от 21 Мая 2003, 18:23:01
Системный администратор сказал, что все права разданы правильно, под моим логином и паролем он заходил (правда непосредственно на сервере) и у него все получалось...
Может ли быть проблема в том, что запрос сделан неверно???

На всякий случай исходник кода:


use DBI;

  $dbh = "DBI:mysql:$name_base_mysql";
  $dbh = DBI->connect($dbh, $user_base_mysql, $pass_base_mysql);

  $dbh -> do("DROP TABLE IF EXISTS $news_table_mysql");

  $dbh -> do("CREATE TABLE IF NOT EXISTS $category_table_mysql
              (
                category_id          VARCHAR(10)                       NOT NULL,
                category_name        VARCHAR(100)                      NOT NULL,
                category_template    VARCHAR(12)                       NOT NULL,
                category_ssi_show    TINYINT                           NOT NULL,
                category_date_show   TINYINT                           NOT NULL,
                PRIMARY KEY (category_id)
              )"
            );


  $dbh -> do("LOAD DATA INFILE
                  \'$path_base_mysql$category_base\'
              INTO TABLE
                  $category_table_mysql
              FIELDS TERMINATED BY \'|\'");

$sql_2 = "SELECT
           category_id,
           category_name,
           category_template,
           category_ssi_show,
           category_date_show
          FROM
            $category_table_mysql
          ";

$sth_2 = $dbh -> prepare($sql_2);

$sth_2 -> execute();

while ($row = $sth_2 -> fetchrow_arrayref()) {
  $temp .= $row->
\';
}

$sth_2 -> finish();

$dbh -> disconnect();

$file = $path_base_mysql.$category_base;
open (TST, $file); @temp2 = ; close (TST);

print "Content-type: text/html; charset=windows-1251\\n\\n";
print qq "$temp
";
print qq "@temp2
";
exit;



Системный администратор сказал, что host и port по default
по идее на эктране должно вывестить 2 идентичных текстовых блоков, но выходит только 1 - @temp2, т.е. непосредственно данные из файла, а те данные которые я пытаюсь пропустить через MySQL теряются... ошибка та же...

Версии модулей:

DBI у меня - 1.201, у хостера - 1.37
DBD::mysql у меня - 2.0400, у хостера - 2.1026
Название: Еще вопрос по Perl+MySQL
Отправлено: Chs от 21 Мая 2003, 20:17:59
А $category_table_mysql в скрипте определена?
$DBI::errstr после выполнения запросов не пробовал смотреть?
Название: Еще вопрос по Perl+MySQL
Отправлено: Phoinix от 22 Мая 2003, 15:22:13
Chs
Нет, все переменные в скрипте естественно определены...
На локальном серваке у меня все работает как надо, но у меня win2k, у хоста Linux...

$DBI::errstr - не смотрел, посмотрю... может что прояснит...
Название: Еще вопрос по Perl+MySQL
Отправлено: Alone от 22 Мая 2003, 16:56:53
http://www.mysql.com/doc/ru/LOAD_DATA.html а точнее http://www.mysql.com/doc/ru/Privileges_provided.html
помоему всетаки вопрос к провайдеру...
лучше подави на него несключенно что он сказал все ок только чтобы ты отстал... бывает... ;)
Название: Еще вопрос по Perl+MySQL
Отправлено: Phoinix от 22 Мая 2003, 17:58:06
Alone
Да похоже прийдется... потому, что INSERT работает нормально, но загрузку целого массива не дает... :-(