Página 1 de 2

Algún módulo que me conecte a SQLyog

NotaPublicado: 2008-04-21 11:33 @523
por majitop1986
¡Buenos días! Les tengo una pregunta... ¿existe algún módulo que me ayude a conectar mi script en Perl a mi base de datos, en este caso SQLyog...? ¡Que me ayude a utilizar los datos de una tabla de mi base en mi script en Perl!...

¿Alguna idea?

NotaPublicado: 2008-04-21 12:58 @582
por explorer
Debes usar el módulo de DBD::mysql. SQLyog es un cliente gráfico de MySQL.

NotaPublicado: 2008-04-21 13:35 @608
por majitop1986
¡Muchas gracias por responder, explorer! ¿Ese mismo módulo me serviría para utilizar los datos de una tabla específica en mi script?

NotaPublicado: 2008-04-21 13:42 @613
por explorer
Sí.

NotaPublicado: 2008-04-21 14:08 @630
por kidd

NotaPublicado: 2008-04-21 14:37 @651
por majitop1986
kidd escribiste:http://perlenespanol.com/tutoriales/bases_de_datos/como_conectarte_a_tu_database.html


¡Hola! Ojalá y me puedas ayudar... estaba probando este script.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use strict;
use DBI();

#$data_source="localhost";
#$username="root";
#$password="rootwdp";
my $dbh = DBI->connect("DBI:mysql:iac_database",
                        "root","rootwdp",
                        {'RaiseError'=>1});

my $sth = $dbh->prepare("SELECT * FROM cst_usuario");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref())
{
        print "Found a row: id = $ref->{'us_idUsuario'}, name = $ref->{'us_nombre'}, last name = $ref->{'us_apellido'}\n";
}
$sth->finish();

$dbh->disconnect();
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Para conectarme a mi base de datos pero me sale el siguiente error.

Código: Seleccionar todo
DBI connect('iac_database','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at base3.pl line 9


Y primero pensé que podría no estar instalado el módulo, pero ya revisé todo... ¡y si está instalado...! ¿que crees que podría ser?

mmmm ¡Alguna ayuda por favor!

NotaPublicado: 2008-04-21 14:50 @660
por kidd
La línea debería de ser:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $dbh = DBI->connect("DBI:mysql:host=localhost;database=iac_database",
                        "root","rootwdp",
                        {'RaiseError'=>1});
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Saludos

NotaPublicado: 2008-04-21 15:20 @680
por majitop1986
kidd, ¡gracias por contestar! corregí la línea que me dijiste... y el script quedo así
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use strict;
use DBI();

#$data_source="localhost";
#$username="root";
#$password="rootwdp";
my $dbh = DBI->connect("DBI:mysql:host=localhost;database=iac_database",
                        "root","rootwdp",
                        {'RaiseError'=>1});

my $sth = $dbh->prepare("SELECT * FROM cst_usuario");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref())
{
        print "Found a row: id = $ref->{'us_idUsuario'}, name = $ref->{'us_nombre'}, last name = $ref->{'us_apellido'}\n";
}
$sth->finish();

$dbh->disconnect();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¡Y me sale el mismo error!

Código: Seleccionar todo
DBI connect('host=localhost;database=iac_database','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at base3.pl line 9

¿Qué crees que pueda ser?

Estuve leyendo el tutorial que me recomendaste... pero me sale errores también. Mira, éste sería el código de ConectarDB.pm

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w
package ConectarDB;

use strict;
use DBI;

my $db_user = "root";
my $db_pass = "....";

my $host_name = "localhost";
my $db_pass = "......";

my $q_string = "DBI:mysql:host=$host_name;database=$db_name";

sub connect{
return (DBI->connect ($q_string, $db_user, $db_pass,
        {PrintError => 0, RaiseError => 1}));
}

1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y aun así me sale error cuando lo llamo de otro script... me sale este error

Código: Seleccionar todo
"my" variable $db_pass masks earlier declaration in same scope at ConectarDB.pm line 11.
Global symbol "$db_name" requires explicit package name at ConectarDB.pm line 13.
Compilation failed in require at base4.pl line 3.
BEGIN failed--compilation aborted at base4.pl line 3.


Te agradecería millón toda la ayuda posible que me puedas brindar.

NotaPublicado: 2008-04-21 16:28 @727
por kidd
Ya el código final que tienes es correcto, ahora el problema no es con Perl sino de MySQL.

Lo primero que tienes que hacer es asegurarte que el proceso de MySQL esté ejecutando, la mayor parte de las veces es por eso que sale el error.

Si tienes Windows, entonces intenta reiniciar y probar de nuevo.

Saludos

NotaPublicado: 2008-04-21 16:51 @743
por explorer
Para mi que el servidor de mysql no está arrancado...