2012-01-12 45 views
125

Deseo comenzar a escribir consultas en MySQL.ERROR 1044 (42000): Acceso denegado para el usuario '' @ 'localhost' a la base de datos 'db'

show grants espectáculos:

+--------------------------------------+ 
| Grants for @localhost    | 
+--------------------------------------+ 
| GRANT USAGE ON *.* TO ''@'localhost' | 
+--------------------------------------+ 

no tiene ningún ID de usuario, pero cuando quiero hacer un usuario que no tengo privilleges, también no sé cómo hacer que los privilegios que incluso me no tiene un usuario!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa'; 
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr 
ivilege(s) for this operation 

Me trataron de sesión como root:

mysql> mysql -u root -p; 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 'mysql 
-u root -p' at line 1 
mysql> mysql -u root -p root; 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 'mysql 
-u root -p root' at line 1 
+2

Es necesario iniciar la sesión como un usuario con permisos. Al menos 'root' debería haberse creado cuando instaló MySQL. – derobert

+0

durante la instalación me dice que establezca la contraseña y la configuro para rootear ahora ¿qué puedo hacer? – Nickool

+8

Debe iniciar sesión como root, por ejemplo, ejecutando 'mysql -u root -p'. Luego tendrá permisos completos en el servidor de la base de datos y podrá crear otros usuarios. – derobert

Respuesta

177

No, se debe ejecutar mysql -u root -p en bash, no en la línea de comandos de MySQL. Si está en mysql, puede salir escribiendo exit.

+0

¿cómo puedo ir a bash? Tuve un problema al instalar mysql ver aquí http://superuser.com/questions/377679/mysql-client-not-working-windows-xp Sólo sé desde la línea de comando – Nickool

+6

use 'quit 'para salir de la mysql, entonces estarás en bash – Nowhy

+22

FYI por defecto la contraseña está en blanco – Edmund

8

Es posible que desee probar el pleno dominio de inicio de sesión:

mysql -h host -u root -p 

donde host sería 127.0.0.1.

Haga esto solo para asegurarse de que exista cooperación.

El uso de mysql -u root -p me permite realizar una gran cantidad de búsquedas en la base de datos, pero rechaza cualquier creación de base de datos debido a una configuración de ruta.

42

Puede que tenga que configurar una cuenta de root para su base de datos MySQL:

En el tipo de terminal:

mysqladmin -u root password 'root password goes here' 

Y a continuación, ejecutar el cliente de MySQL:

mysql -h localhost -u root -p 
+1

. Esto funcionó para mí, funcionaba bien inicialmente y de repente dejó de funcionar un día. Alguna idea, por qué sucede esto en primer lugar? –

+0

@soleshoe obtengo el error: sudo: mysqladmin: comando no encontrado por favor ayúdame ¿qué puedo hacer?mysql ya se está ejecutando en Preferencias del sistema. – Hitarth

5

Primera , si no está familiarizado con la línea de comando, intente usar phpmyadmin desde su navegador web. Esto asegurará que realmente tenga una base de datos mysql creada y un nombre de usuario.

Así es como se conecta desde la línea de comandos (bash):

mysql -h hostname -u username -p database_name 

Por ejemplo:

[email protected] ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb 
+0

'-p' es para la contraseña y la está usando para pasar el nombre de la base de datos. Además, para la contraseña, ** no debe ** ser un espacio b/w '-p' y la contraseña real. Use '-D' para conectarse a una base de datos específica. –

24

Me trajeron aquí por un problema diferente. Cada vez que intenté iniciar sesión, recibí ese mensaje porque en lugar de autenticarme correctamente, inicié sesión como usuario anónimo.La solución a mi problema era:

Para ver qué usuario se encuentre, y cuyos permisos tiene:

select user(), current_user(); 

Para eliminar el usuario anónimo molestos:

drop user ''@'localhost'; 
+1

Esto me solucionó el problema aunque estaba usando "mysql -u username -p". Muy extraño: usuario() era mi nombre de usuario, pero current_user() era localhost ... ¿no sabes por qué? – ethanpil

+1

@Leftteris hola ... estoy recibiendo este error: acceso denegado; necesita (al menos uno de) los privilegios CREATE USER para esta operación cuando intento eliminar el usuario '' @ 'localhost'; – Hitarth

0

mayoría de los desarrolladores registro -en el servidor (supongo que tienes el nombre de usuario y la contraseña para la base de datos mysql), luego desde Bash cambian a mysql> prompt y luego utilizas el siguiente comando (que no funciona

mysql -h localhost -u root -p 

Lo que hay que hacer es usar el comando anterior en el indicador bash -> en hacerlo, se pedirá la contraseña si se le da llevará directamente al indicador de mysql y

continuación, la base de datos , tabla puede crearse uno por uno

me enfrentaba estancamiento similares lo que podrá compartir la experiencia

1

@Nickparsa ... tiene 2 números:

1). mysql -uroot -p debe escribirse en bash (también conocido como su terminal) no en la línea de comandos de MySQL. Para corregir este error, escriba

exit 

en su línea de comandos de MySQL. Ahora estás de vuelta en tu línea de comando bash/terminal.

2). Tiene un error de sintaxis:

mysql -uroot -p; 

el punto y coma delante de -p debe ir. La sintaxis correcta es:

mysql -uroot -p 

escriba la sintaxis correcta en su línea de comando bash. Ingrese una contraseña si tiene una configuración; De lo contrario, solo presiona el botón Enter. Debería obtener una respuesta que es similar a esto: enter image description here

Espero que esto ayude!

+0

Hola tengo la pantalla de abow directamente después de disparar esta recomendación./usr/local/mysql/bin/mysql pero después de eso cuando trato de crear una base de datos usando "CREATE DATABASE books;" recibo un error: ERROR 1044 (42000): acceso denegado para el usuario '' @ 'localhost' a la base de datos ' libros 'por favor ayúdenme – Hitarth

4

Si se encuentra en el shell mysql, salga de él escribiendo exit. Le devolverá al prompt de comando. Ahora inicie mysql usando exactamente el siguiente comando:

sudo mysql -u root -p

Si su nombre de usuario es algo distinto de la raíz, reemplace 'root' en el comando anterior con su nombre de usuario:

sudo mysql -u tu-nombre-usuario -p

A continuación, le pregunte al mysql-cuenta-contraseña y su mysql no mostrará ningún acceso pr problema de privilegio a partir de ahora.

+0

después de ingresar la contraseña obtengo "sudo: mysql: comando no encontrado" Por favor, ayúdenme en este – Hitarth

+0

no debería ser "sudo:", debería ser "sudo" ... Si no es un error tipográfico, creo que este es el problema. –

0

Tenía el comando correcto de acuerdo a las respuestas anteriores, lo que perdí fue en Workbench, donde mencionamos 'Limitar conectividad desde el host' para el usuario, por defecto es "%" - cambiar esto a "localhost" y conecta bien después de eso!

1

Esto tiene que ver con los permisos de los usuarios. El otorgamiento de subvenciones adecuadas resolverá este problema.

Paso [1]: Abrir el terminal y ejecutar este comando

$ mysql -uroot -p 

de salida [1]: Esto debería darle mysql pronta muestran a continuación

enter image description here

Paso [2]:

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password'; 
mysql> grant all privileges on *.* to 'parsa'@'localhost'; 

Sintaxis:

Note:

  • hostname can be IP address, localhost, 127.0.0.1
  • In database_name/table_name , * means all databases
  • In hostname , to specify all hosts use '%'

Paso [3]: Sal de pronta MySQL actual, ya sea introduciendo el comando quit/exit o pulse Ctrl+D.

Paso [4]: ​​Entrar a su nuevo usuario

$ mysql -uparsa -pyour_password 

Paso [5]: Crear la base de datos

mysql> create database `database_name`; 
Cuestiones relacionadas