Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

obtengo el error 'access denied for user ''@'localhost'

Estas en el tema de obtengo el error 'access denied for user ''@'localhost' en el foro de Mysql en Foros del Web. buenas, una vez mas acudo a uds para ver si me pueden dar una mano con este problema. Estoy queriendo instalar el Apache+PhpMyAdmin+MySQL en un ...
  #1 (permalink)  
Antiguo 08/06/2007, 04:26
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 6 meses
Puntos: 1
obtengo el error 'access denied for user ''@'localhost'

buenas,

una vez mas acudo a uds para ver si me pueden dar una mano con este problema. Estoy queriendo instalar el Apache+PhpMyAdmin+MySQL en un FEDORA CORE 6.

Apache y PHP los instale sin problemas, pero el MySQL me esta dando más que un gran dolor de cabeza y una perdida de valioso tiempo.

Despues de haber instalado el servidor MySQL me dispuse a cambiar el password del user root y empezar a trabajar en el tema de los permisos. Pero resulta que parece que el user root no existe

inicio el servicio con: # service mysqld start
hasta ahi todo bien, quiero ingresar como superusuario para hacer lo que quiera.

# mysql -u root

El sistema me devuelve
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 5.0.27

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql#

GENIAL! pero NO!

casi cualkier cosa que quiera hacer me devuelve el error

Access denied for user ''@'localhost' ...

intente reinstalarlo y me dio el mismo resultado, intente cambiarle el password al root como sigue:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

y me devuelve "Can't find any matching row in the user table"

por lo que supongo que el user root no existe en la tabla user lo cual es bastante raro. Osea que en definitiva no se con que user ingrese al sistema.

dehabilite el cortafuegos (firewall) de linux y tampoco, lo ultimo que encontre por internet fue utilizar el comando 'flush privileges' y me dijo q para hacerlo necesito el permiso de RELOAD.

Ando un poco perdido ya a esta altura, la sintaxis de ORACLE no la tengo muy bien estudiada, select, grant y todo lo demas. Cualkier orientacion que me puedan dar es bienvenida ya que estoy un poco cansado de lidiar con este tema, sobre todo cuando en Windows fue super sencillo y casi una cosa de solo darle click al boton 'siguiente'.

Gracias de antemano.

Última edición por chelix; 08/06/2007 a las 04:34
  #2 (permalink)  
Antiguo 08/06/2007, 06:43
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: obtengo el error 'access denied for user ''@'localhost'

Holas Chelix, bueno para empezar te explico como registra MySQL los usuarios, bueno si revisaste cada vez que se instala MySQL se crean tres bases de datos por defecto: test, mysql e information_schema, dentro de la base de datos de mysql, en la tabla user puedes encontrar puedes encontrar todos los usuarios que existen para conectarse a la base de datos y sus permisos, cuando registras un nuevo usuario se registra dentro de la tabla user tomando en cuenta el host desde cual se ha de conectar es decir que puedes tener dos registros en ese tabla o mas, como te muestro mas abajo:
Código PHP:
mysqlselect HostUser from mysql.user;
+-----------+----------+
Host      User     |
+-----------+----------+
| %         | 
root    |
localhost portatil |
localhost root     |
+-----------+----------+
3 rows in set (0.02 sec
si ves para el usuario root tengo un registro para poder acceder desde cualquier punto de red, como tambien para poder acceder desde localhost es decir localmente, podrias intentar hacer esa consulta y ver si tienes registro de root para localhost, ya que si no tienes entonces tu sentencia SET PASSWORD fallara y mostrara ese error, ahora tambien puedes intentar esto o su equivalente:
Código PHP:
mysqlSET PASSWORD FOR 'usuario'@'host' PASSWORD('contraseña'); 
Esto es equivalente al siguiente comando:
Código PHP:
mysqlUPDATE mysql.user SET Password=PASSWORD('contraseña')
    -> 
WHERE User='usuario' AND Host='host';
mysqlFLUSH PRIVILEGES
espero te sirva, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 08/06/2007, 13:54
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: obtengo el error 'access denied for user ''@'localhost'

Gracias deadlykyo por la respuesta, pero desafortunadamente al hacer la consulta me sale el mismo error de siempre, creo que tendria q modificar algun archivo de configuracion o algo para poder ejecutar consultas ya que me impide hacer cualkier cosa.

Te muestro lo que me dice cuando intento hacer consultas como la que dices, es evidente que el user con el que se loguea no tiene permisos para hacer nada.

mysql> select Host, User from mysql.user;
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user'

Luego probé ejecutar el script mysql_install_db, para empezar supuestamente de 0, pero no hay caso, me dijeron por ahi que me estoy logueando con un usuario vacio lo cual tiene sentido dado el error, pero por otro lado al phpMyAdmin me logueo con 'root' y sin contraseña y entro, ahora una vez dentro dicho usuario no tiene ningun privilegio pr lo que no puedo hacer nada!

Si a alguien le paso algo similar por favor una ayuda, incluso probé loguearme uasndo 'mysql -uroot', 'mysql -u root' y 'mysql --user=root' y en los 3 casos pasa lo mismo.

Última edición por chelix; 08/06/2007 a las 15:22
  #4 (permalink)  
Antiguo 12/06/2007, 03:41
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: obtengo el error 'access denied for user ''@'localhost'

Bueno, despues de darme varias veces contra la pared la cabeza, logre solucionar el problema.

Posteo la solucion ya que creo que le va a servir a mas de uno.

El problema que yo tenia era que al parecer se habian modificado los privilegios del user root. Quedando este sin NINGUN privilegio, y como a su vez no habia ningun otro user creado, sencillamente no podia acceder a ninguna tabla ni modificar nada, a pesar de reinstalar el servidro de MySQL y de intentar un sinfin de soluciones, di con la que me sirvio en una pagina de internet, mi problema era que ejecutaba el comando 'mysqld' en vez de 'mysqld_safe', pequeño GRAN detalle al parecer ya que uno si me acepta la opcion '--skip-grant-tables' y el otro no.

La solucion esta en solotuweb (punto) com,
y busquen con algo como rescatando root en mysql o similar.

Les dejo a los moderadores la posibilidad de incluir la solucion en algun FAQ, ya que por lo menos a mi me dio mucho trabajo dar con ella.

Saludos
  #5 (permalink)  
Antiguo 06/11/2008, 11:55
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Respuesta: obtengo el error 'access denied for user ''@'localhost'

yo me stuve pegando en la cabeza con ese mismo problema, hasta q encontre
http://www.solotuweb.com/vc~t~Rescatando-la-ROOT-en-MySQL~id~5501.html

les explico brevemente, ojala les sirva como a mi q me saco de un gran apuro

1: en la shell: mysqld_safe --skip-grant-tables
si sta en servicio /etc/init.d/mysql stop y ya welven a poner el comando y se les qedara como paralizada..Abran otra consola

2: En la consola nueva logueate como root sin pass, te debe permitir hacerlo sin problemas.

3: use mysql; Esto debe permitirte sin problemas cosa q no pasaba antes!!!

4: yo lo q hice fue un select Host, User,Password from user;
esto pa q me mostrara los q no tenian password y despues un
Delete from user where User='';

5: Hecho esto y no olvidar un flush privileges;

Y problema resuelto, cualqier duda pregunten o mas bien cheqen el enlaze q explica muy bien
http://www.solotuweb.com/vc~t~Rescatando-la-ROOT-en-MySQL~id~5501.html
  #6 (permalink)  
Antiguo 06/11/2008, 11:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: obtengo el error 'access denied for user ''@'localhost'

ups pense q era otro de los tantos foros q cheqe por ayuda :$:$ ...gracias chelix me sirvio un buen!!!
  #7 (permalink)  
Antiguo 07/11/2008, 15:00
 
Fecha de Ingreso: marzo-2005
Mensajes: 14
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: obtengo el error 'access denied for user ''@'localhost'

Me pasa lo mismo que a tí pero en windows. ¿Dices que en windows no te dio ningún problema? Yo he instalado el paquete The AppServ Open Project - 2.5.10 for Windows dejándolo todo por defecto y me da el fallo que comentas. Si le pongo mysql_connect("localhost") me conecta bien, pero a la hora de crear bd con mysql_query("CREATE DATABASE nombre_bd") me da el fallo de access denied for user ''@'localhost.

¿Alguna idea? Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:42.