Newsgroup: it.comp.lang.perl
Titolo: mysqlPP

Ciao a tutti,
ho sempre usato con piena soddisfazione il modulo DBD::MySQL, ultimamente 
ho visto che è uscito il nuovo modulo in puro perl mysqlPP, che tra l'altro 
mi pare sia obbligatorio (per connettersi a MySQL) per la versione 5.8 
dell'interprete di perl di activestate (x windows).
Il problema è che non riesco a farlo funzionare ne su windows ne su linux. 
Dato questo script di prova:
-------------------------
#!/usr/bin/perl
$driver = 'mysqlPP';
$database = 'test';
$host = 'localhost';
$options = '';
$userid = 'shishii';
$passwd = '******';
use DBI;
use CGI;
$q = new CGI;
&connetti;
&disconnetti;
&conferma('connessione');
###################################################
##               SUBROUTINES COMUNI              ##
###################################################
# SUBROUTINE DI CONNESSIONE
sub connetti {
my $dsn = "dbi:$driver:database=$database;host=$host";
$dbh = DBI->connect($dsn, $userid, $passwd) || 
&errore('no_connessione',$DBI::errstr);
}
#################################################
# subrotine di disconnessione
sub disconnetti {
$dbh->disconnect;
}
-------------------------------------------
mi genera a video questo errore:
Errore: Timeout of authentication at 
/usr/lib/perl5/site_perl/5.6.0/DBD/mysqlPP.pm line 109
e il file error.log di apache dice:
DBI->connect(database=test;host=localhost) failed: Timeout of 
authentication at /usr/lib/perl5/site_perl/5.6.0/DBD/mysqlPP.pm line 109
 at /var/www/cgi-bin/mysqlPP/
prova.pl
 line 26
se sostituisco a 
$driver = 'mysqlPP';
il driver
$driver = 'mysql';
e quindi uso DBD::mysql tutto funziona. Inoltre le stringhe di connessione 
le ho copiare dal pod di mysqlPP.
Qualcuno ha idea di qual'è il problema?
Grazie.
-- 
-- Marco Allegretti --
http://www.shishii.com

  at /var/www/cgi-bin/mysqlPP/
prova.pl
 line 26
Ciao Marco
Non conoscevo mysqlPP e cosi' l'ho installato e ho fatto qualche
prova.
Il tuo programma, sulla mia macchina, funziona !
(copiato pari pari)
Ho dato uno sguardo alla riga 109 (mysqlPP.pm) ed
in quel punto esegue un blocco con eval. 
Nel blocco c'e' la chiamata alla libreria Net::MySQL.
per la connessione a mysql.
Forse c'e' qualche problema con questa libreria.
un saluto
Marco (un omonimo :)

 Forse c'e' qualche problema con questa libreria.
Mahh... a me risulta correttamente installata, inoltre il problema mi si 
presenta su 4 sistemi:
windows 98
windows XP
linux RH7.1
linux RH7.3
Altre possibilità?


 
Non so', io mi accerterei del funzionamento di
Net::MySQL. Se questa funziona, allora proverei a modificare 
mysqlPP.pm facendogli stampare i parametri che riceve in 
input.
Ti allego un pezzetto di codice preso da:
http://search.cpan.org/author/OYAMA/Net-MySQL-0.08/MySQL.pm
Sulla mia macchina gira (Linux, perl v5.8.0, mysql 3.23.41)
prova a vedere se funge anche su una delle tue.
un saluto
Marco
__CODE__
use Net::MySQL;
  my $mysql = Net::MySQL->new(
      hostname => 'localhost',
      database => 'test',
      user     => 'shishii',
      password => '******'
  );
  $mysql->query(q{SELECT * FROM tabella_che_piu_ti_ispira});
  my $record_set = $mysql->create_record_iterator;
  while (my $record = $record_set->each) {
      printf "First column: %s Next column: %s\n",
      $record->[0], $record->[1];
}
$mysql->close;
__ENDCODE__

 __ENDCODE__
purtroppo stesso identico errore:
Timeout of authentication at mysqlPP.pl line 3 
proverò ad indagare su Net::MySQL
