Автор Тема: Еще вопрос по Perl+MySQL  (Прочитано 3056 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Еще вопрос по Perl+MySQL
« : 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 тоже нормальное...
Такое чувство, что мне не даны права на добавление записей в базу через обычного пользователя...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Еще вопрос по Perl+MySQL
« Ответ #1 : 20 Мая 2003, 19:00:32 »
Возможно и такое. У хостера бы спросил...
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Еще вопрос по Perl+MySQL
« Ответ #2 : 20 Мая 2003, 19:05:30 »
Он уже ушел домой... :-((( будем добивать уже завтра...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Еще вопрос по Perl+MySQL
« Ответ #3 : 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->
  • .\' \'.$row->[1].\' \'.$row->[2].\' \'.$row->[3].\' \'.$row->[4].\'

\';
}

$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

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Еще вопрос по Perl+MySQL
« Ответ #4 : 21 Мая 2003, 20:17:59 »
А $category_table_mysql в скрипте определена?
$DBI::errstr после выполнения запросов не пробовал смотреть?
2B OR NOT 2B = FF

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Еще вопрос по Perl+MySQL
« Ответ #5 : 22 Мая 2003, 15:22:13 »
Chs
Нет, все переменные в скрипте естественно определены...
На локальном серваке у меня все работает как надо, но у меня win2k, у хоста Linux...

$DBI::errstr - не смотрел, посмотрю... может что прояснит...

Оффлайн Alone

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 182
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Еще вопрос по Perl+MySQL
« Ответ #6 : 22 Мая 2003, 16:56:53 »
http://www.mysql.com/doc/ru/LOAD_DATA.html а точнее http://www.mysql.com/doc/ru/Privileges_provided.html
помоему всетаки вопрос к провайдеру...
лучше подави на него несключенно что он сказал все ок только чтобы ты отстал... бывает... ;)

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Еще вопрос по Perl+MySQL
« Ответ #7 : 22 Мая 2003, 17:58:06 »
Alone
Да похоже прийдется... потому, что INSERT работает нормально, но загрузку целого массива не дает... :-(

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28