2008-08-07 15:33 @690 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
ERROR 2002 (HY000)
|
Hola a todos, soy yo de nuevo Estoy corriendo mi script que conecta a una base de datos, pero me sale este error : Código: DBI connect('database=base','root',...) failed: Can't connect to loc MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at cone.pl le 14 y en mi linea 14 tengo: Using perl Syntax Highlighting my $dbh = DBI->connect($connectionInfo,$userid,$pass,
{'RaiseError' => 1}); Ahora en mi $userid, tengo el usuario y en mi $pass no tengo nada, porque la base de datos no posee contraseña de acceso, estoy usando MySQL, y por si acaso sí tengo levantada la base, ahora cuando voy a ver a la dirección que me sale ahí el archivo mysql.sock no aparece, se encuentra en otra dirección... pero leyendo encontré que se puede cambiar la dirección en my.cnf, y lo hice, le puse una nueva dirección pero sigue apuntando a la que me sale en el error y no sé dónde más cambiarle. plis, ayuda 
|
2008-08-07 15:51 @702 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
|
Te cuento... que traté de ir a ver el log de mysql en la dirección que me dijiste... pero no está en ningún archivo que se llame mysql.log o algo parecido y cuando me dices esto Citar: Es posible que en my.cnf no esté permitido que mysql server cree conexiones de ese tipo. ¿¿Te refieres a la conexión entre mi script y la base de datos??
|
2008-08-07 16:40 @736 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
|
He estado buscando el log como loca y no lo encuentro así que busqué por si acaso el my.cnf y resulta que tengo dos  uno en /etc/my.cnf y otro en /opt/lampp/etc/my.cnf, ahora en el /etc/my.cnf tengo esto: Código: [mysqld] datadir=/var/lib/mysql socket=/opt/lampp/var/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid Si te puedes dar cuenta la dirección del socket, bueno esa la cambié yo, para ver si reparaba el error y nada, mmm antes tenía la dirección /var/lib/mysql/mysql.sock, y también ahí indican la dirección del log, pero al ir a esa dirección no aparece para nada Ahora en el otro my.cnf, está más completo y tiene esto Código: # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /opt/lampp/var/mysql/mysql.sock
# Here follows entries for some specific programs
# The MySQL server [mysqld] port = 3306 socket = /opt/lampp/var/mysql/mysql.sock skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M
# The replication master for this slave - required #master-host = <hostname> # # The username the slave will use for authentication when connecting # to the master - required #master-user = <username> # # The password the slave will authenticate with when connecting to # the master - required #master-password = <password> # # The port the master is listening on. # optional - defaults to 3306 #master-port = <port> # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin
# Point the following paths to different dedicated disks #tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000
# Comment the following if you are using InnoDB tables skip-innodb innodb_data_home_dir = /opt/lampp/var/mysql/ innodb_data_file_path = ibdata1:10M:autoextend
# of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50
[mysqldump] quick max_allowed_packet = 16M
[mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates
[isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M
[myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M
[mysqlhotcopy] interactive-timeout Cabe recalcar que solo publiqué lo relevante porque lo demás es comentarios de ese archivo, ahora no sé cómo hacer para que Linux me lea el my.cnf de /opt/lampp/etc/ y no el otro ¿o debería ser al revés? 
|
2008-08-07 17:58 @790 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10250
|
|
|
|
¿Lo ves? Te lo avisé hace meses... el instalar el XAMPP no te ha traído más que desgracias... El oficial es el que está en el /etc/. Yo reinstalaría todo el Linux... sin el XAMPP. 
_________________ JF^D Perl programming
|
2008-08-11 08:55 @413 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
|
|
¡¡¡Disculpa la demora, explorer!!!
¡¡¡Gracias por la sugerencia!!! pero, créeme que a estas alturas no puedo darme el lujo de hacer eso... o sea, ¿que tu lo ves como que ya no hay solución??? :S
|
2008-08-11 10:14 @468 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10250
|
|
|
|
Sí que hay solución. Y fácil. Con un poco de paciencia se puede dejar funcionando. Depende de la destreza y experiencia del administrador del sistema.  Sin tener que reinstalar nada. Hay que ir servicio por servicio, ver dónde se arrancan, cómo, qué ficheros de configuración usan, que ficheros de datos leen y escriben, qué puertos abren, etc. Instalar software preconfigurado como el XAMPP, está bien, pero hay que tener cuidado con lo que va a 'pisar'. Es como si estuviéramos en Windows e instaláramos el Microsoft Office para poder grabar los documentos en formato Word, sin darnos cuenta de que ya teníamos instalado el Open Office y esa función ya la realizaba. Y la presencia de Microsoft Office modifica el comportamiento de todo el sistema de tal forma que impide que los .doc se abran con el OOffice con un sencillo doble click. El usuario del equipo, que normalmente usaba esa acción, ahora se encuentra con una desagradable sorpresa. Te recomiendo: paciencia, leer mucho, apuntar a un foro de Linux, y hacer un curso de administración de sistemas Linux. Hoy en día se valora mucho esa titulación.
_________________ JF^D Perl programming
|
2008-08-11 16:36 @733 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
|
Te cuento explorer que encontré la solución Es de poner en el /etc/my.cnf la sección [client]... mmm quedaría de esta forma: Código: [client] #password = port = 3306 socket = /opt/lampp/var/mysql/mysql.sock
[mysqld] port = 3306 datadir=/opt/lampp/var/mysql socket=/opt/lampp/var/mysql/mysql.sock
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
pero una vez solucionado... corrí mi script y ya no me sale error de mysql.sock... pero me sale este error... medio raro que no lo entiendo Código: Usage: $class->connect([$dsn [,$user [,$passwd [,\%attr]]]]) at conex.pl line 14 y en la linea 14 tengo Using perl Syntax Highlighting my $dbh = DBI->connect($connectionInfo,$userid,
{'RaiseError' => 1});
ahora si no le mando el password es porque por el momento no tiene... mmm ¿¿¿alguna sugerencia???
|
2008-08-11 17:35 @774 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
|
|
una pregunta!!!
existe alguna manera de que dentro de perl pueda especificar donde se encuentra mi mysql.sock?? asi como lo puedo cambiar en el my.cnf??
disculpn la ignorancia
|
2008-08-11 18:14 @801 |
|
|
 |
kidd
Creador de Perl en Español
|
Registrado: 2003-10-15 16:52 @744 Ubicación: México Mensajes: 1163
|
|
|
|
Si lo mandas junto con la información del host, database, etc. Ejemplo: Using perl Syntax Highlighting DBI->connect(
"DBI:mysql:host=HOST;database=NOMBREDATABASE;mysql_socket=/tmp/mysql.sock", "USER", "PASS",
{PrintError => 1, RaiseError => 1}
);
_________________ Uriel Lizama Perl programmer fundador de Perl en Español
|
2008-08-11 18:23 @808 |
|
|
majitop1986
Perlero Nuevo
|
Registrado: 2008-04-02 14:04 @628 Mensajes: 64
|
|
|
|
¡¡kidd!! muchas gracias por ayudarme, ando desesperada, mira hice lo que me pediste... y me salió este error. Código: Can't DBI::st=HASH(0x8e3e340)->bind_col(1, undef,...), need a reference to a scalar at /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/DBI.pm line 1831.  ¿Qué es? puedes ayudarme, te envío también el script que tengo para que lo veas y me digas si algo anda mal. Using perl Syntax Highlighting #!/usr/bin/perl -w
package DBD::mysql;
use strict;
use DBI;
my $db='base';
#my $host='localhost';
#$port="3306";
my $userid='root';
my $pass='';
my $connectionInfo="DBI:mysql:database=$db;mysql_socket=/opt/lampp/var/mysql/mysql.sock";
my $dbh = DBI->connect($connectionInfo, 'root', '', {'RaiseError' => 1});
die "Ha habido un problema al conectar con la base de datos: ".$DBI::errstr unless(defined($dbh));
my $query = "SELECT * FROM admi";
my $sth = $dbh->prepare($query);
$sth->execute();
$sth->bind_columns(undef,my $nombre,my $descripcion);
#print "Resultados";
while($sth->fetch())
{
print "$nombre - $descripcion";
}
$sth->finish();
$dbh->disconnect; ¿Qué opinas? 
|
2008-08-11 18:30 @812 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10250
|
|
|
|
¿Qué narices hace la línea Using perl Syntax Highlighting en el programa? Anda, por favor, quítala (no te hace falta).
_________________ JF^D Perl programming
|
2008-08-11 22:27 @977 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10250
|
|
|
|
El error dice que has pasado mal los argumentos a bind_columns(). Y además, estás intentando usar la bind_cols(), que tiene distintos argumentos. Debes definir ANTES las variables, y luego indicar su referencia: Using perl Syntax Highlighting my $nombre;
my $descripcion;
$sth->bind_columns(\$nombre,\$descripcion); Más información, en la descripción de bind_columns() en la página de manual de DBI. Incluye ejemplos.
_________________ JF^D Perl programming
|
|
Página 1 de 1
|
[ 15 mensajes ] |
|
| Reglas del Foro |
No puedes abrir nuevos temas en este Foro No puedes responder a temas en este Foro No puedes editar tus mensajes en este Foro No puedes borrar tus mensajes en este Foro No puedes enviar adjuntos en este Foro
|
|
Socializa |
 |
|