Perl проблемы подключения к MySql

Discussion in 'PHP' started by TikTik, 5 Oct 2011.

  1. TikTik

    TikTik Member

    Joined:
    20 Feb 2009
    Messages:
    241
    Likes Received:
    12
    Reputations:
    2
    Код скрипта

    Code:
    #!/usr/bin/perl -w
    # vislog.cgi
    use strict;
    use POSIX;
    use Socket;
    use LogConnect;
    my $dbh = LogConnect->connect;
    my $ip = $ENV{'REMOTE_ADDR'};
    my $browser = $ENV{'HTTP_USER_AGENT'};
    my $referer = $ENV{'HTTP_REFERER'};
    my $here = $ENV{'REQUEST_URI'};
    my @digits = split(/\./, $ip);
    my $address = pack("C4", @digits);
    my $host = gethostaddr($address, AF_INET);
    my $time = strtime("%Y-%m-%d %H:%M:%S",gmtime);
    my $query = qq(insert info access_log values
                  ('$ip', '$host', '$browser', '$referer',
                  '$here', '$time'));
    my $sth = $dbh ->prepare($query);
    $sth -> execute;
    $dbh -> disconnect;
    
    код модуля

    Code:
    package LogConnect;
    use DBI;
    use strict;
    
    sub connect {
        my $log_dbname = "visitors"; 
        my $log_dbhost = "localhost";
        my $port = "3306";
        my $log_dsn = "DBI:mysql:database=$log_dbname;host=$log_dbhost:$port";
        my $log_dbh = DBI->connect($log_dsn, "root", "1234");
    if (!defined($log_dbh)) {
      print "\nerror: Проблемка с подключением к
              базе данных MySql:\n";
              print DBI ->errstr;
              print "-" x 25 . "\n";
              return;
      }
      return $log_dbh;
      }
      1;
    
    ОШИБКИ


    помогите 2й день уже вожусь...


    ...
     
  2. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Судя по ошибке, имя пользователя или пароль к MySQL-серверу неверно указаны.
     
    1 person likes this.
  3. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Написано же что не так О_о
    Code:
    Use of uninitialized value $ip ... C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 12.
    http://www.codenet.ru/webmast/perl/ipperl.php

    Code:
    Access denied for user 'root'@'localhost' 
    И тут всё понятно. Пароль не тот, а может юзвер. А может и то и другое. Если пасс вообще не стоит(в бд), то просто написать '' (пустое значение).

    Пс. не похоже, что было потрачено два дня то...
     
    #3 Melfis, 6 Oct 2011
    Last edited: 6 Oct 2011
  4. TikTik

    TikTik Member

    Joined:
    20 Feb 2009
    Messages:
    241
    Likes Received:
    12
    Reputations:
    2
    код из книги по которой учусь сgi http://www.perlcgi-book.com/listings/listing_3-10.txt

    в том то и дело пробовал без пароля и с паролем без результатно
    уже как только не переделывал почему пароль не подходит не ясно :( тестирую на денвере
     
  5. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    TikTik, у вас логика скрипта нарушена - при возникновении исключительной ситуации в модуле LogConnect.pm (невозможно соединиться с мускулем) скрипт продолжит работу вместо того, чтобы завершиться