• Publicidad

ERROR 2002 (HY000)

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

ERROR 2002 (HY000)

Notapor majitop1986 » 2008-08-07 15:33 @690

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: Seleccionar todo
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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $dbh = DBI->connect($connectionInfo,$userid,$pass,
                        {'RaiseError' => 1});
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


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 :shock:
majitop1986
Perlero nuevo
Perlero nuevo
 
Mensajes: 64
Registrado: 2008-04-02 14:04 @628

Publicidad

Notapor explorer » 2008-08-07 15:46 @698

Cuando dices que está levantada la base de datos, se supone que mysql server ha sido arrancado.

Deberías ver el resultado en /var/log/mysql.log (o donde esté definido en my.cnf).

Es posible que en my.cnf no esté permitido que mysql server cree conexiones de ese tipo. Tendrás que revisar las secciones [client] y [mysqld] para comprobar que apuntan al mismo sitio.

Más información, en los foros de MySQL.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor majitop1986 » 2008-08-07 15:51 @702

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
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??
majitop1986
Perlero nuevo
Perlero nuevo
 
Mensajes: 64
Registrado: 2008-04-02 14:04 @628

Notapor explorer » 2008-08-07 16:20 @722

La posición del registro de actividad (log) está definida en la entrada log en la sección [mysqld] del my.cnf (aunque también depende un poco de la versión del MySQL que tengas instalado).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor majitop1986 » 2008-08-07 16:40 @736

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: Seleccionar todo
[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 :shock:

Ahora en el otro my.cnf, está más completo y tiene esto

Código: Seleccionar todo
# 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? :?
majitop1986
Perlero nuevo
Perlero nuevo
 
Mensajes: 64
Registrado: 2008-04-02 14:04 @628

Notapor explorer » 2008-08-07 17:58 @790

¿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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor majitop1986 » 2008-08-11 08:55 @413

¡¡¡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
majitop1986
Perlero nuevo
Perlero nuevo
 
Mensajes: 64
Registrado: 2008-04-02 14:04 @628

Notapor explorer » 2008-08-11 10:14 @468

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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor majitop1986 » 2008-08-11 16:36 @733

Te cuento explorer que encontré la solución :D

Es de poner en el /etc/my.cnf la sección [client]... mmm quedaría de esta forma:

Código: Seleccionar todo
[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: Seleccionar todo
Usage: $class->connect([$dsn [,$user [,$passwd [,\%attr]]]]) at conex.pl line 14


y en la linea 14 tengo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $dbh = DBI->connect($connectionInfo,$userid,
                        {'RaiseError' => 1});
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


ahora si no le mando el password es porque por el momento no tiene... mmm ¿¿¿alguna sugerencia???
majitop1986
Perlero nuevo
Perlero nuevo
 
Mensajes: 64
Registrado: 2008-04-02 14:04 @628

Notapor majitop1986 » 2008-08-11 17:35 @774

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
majitop1986
Perlero nuevo
Perlero nuevo
 
Mensajes: 64
Registrado: 2008-04-02 14:04 @628

Siguiente

Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado