ERROR 1044 (42000): Acceso denegado para el usuario ” @ ‘localhost’ a la base de datos ‘db’

Quiero comenzar a escribir consultas en MySQL.

show grants muestra:

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

No tengo ningún ID de usuario pero cuando quiero hacer un usuario no tengo privilegios, ¡tampoco sé cómo otorgar privilegios incluso cuando no tengo 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 

Intenté iniciar 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 

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

Es posible que deba configurar una cuenta raíz para su base de datos MySQL:

En el tipo de terminal:

 mysqladmin -u root password 'root password goes here' 

Y luego para invocar al cliente MySQL:

 mysql -h localhost -u root -p 

Fui traído 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 fue:

Para ver qué usuario eres y con qué permisos tienes:

 select user(), current_user(); 

Para eliminar el molesto usuario anónimo:

 drop user ''@'localhost'; 

Es posible que desee probar el comando de inicio de sesión completo:

 mysql -h host -u root -p 

donde el 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 hacer 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.

Primero, 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 te conectas desde la línea de comando (bash):

 mysql -h hostname -u username -p database_name 

Por ejemplo:

 fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb 

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

sudo mysql -u root -p

Si su nombre de usuario es distinto de root, reemplace ‘root’ en el comando anterior con su nombre de usuario:

sudo mysql -u tu-nombre-usuario -p

Luego le preguntará la contraseña de cuenta mysql, y su mysql no mostrará ningún problema de privilegios de acceso a partir de ahora.

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

Paso [1]: abre el terminal y ejecuta este comando

 $ mysql -uroot -p 

Salida [1]: Esto debería darle una solicitud de mysql que se muestra 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:

 mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname'; 

Nota:

  • el nombre de host puede ser una dirección IP, localhost, 127.0.0.1
  • En database_name / table_name , * significa todas las bases de datos
  • En hostname , para especificar todos los hosts use ‘%’

Paso [3]: salga del indicador mysql actual ingresando el comando exit / exit o presione Ctrl+D

Paso [4]: ​​inicia sesión en tu nuevo usuario

 $ mysql -uparsa -pyour_password 

Paso [5]: crea la base de datos

 mysql> create database `database_name`; 

@Nickparsa … tienes 2 problemas:

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

 exit 

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

2). Usted tiene un error de syntax:

 mysql -uroot -p; 

el punto y coma delante de -p necesita ir. La syntax correcta es:

 mysql -uroot -p 

escriba la syntax 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 similar a esta: enter image description here

¡Espero que esto ayude!

La mayoría de los desarrolladores inician sesión en el servidor (supongo que tienes un nombre de usuario y contraseña para la base de datos mysql) y luego desde Bash cambian a la mysql> prompt luego usan el siguiente comando (que no funciona)

 mysql -h localhost -u root -p 

Lo que hay que hacer es usar el comando de arriba en el indicador de bash -> al hacerlo, se le pedirá una contraseña si se lo lleva directamente a la solicitud de mysql y

luego base de datos, la tabla se puede crear uno por uno

Me enfrenté a un punto muerto similar, por lo que compartir la experiencia

Tuve el comando correcto de acuerdo a las respuestas anteriores, lo que perdí fue en Workbench, donde mencionamos ‘Limitar conectividad del host’ para el usuario, por defecto es “%” – cambia esto a “localhost” y se conecta bien después de eso!