$ ./mysqladmin -u root -p ' redacted '
Ingrese la contraseña:
mysqladmin: error al conectar al servidor en 'localhost':
'Acceso denegado para el usuario' root '@' localhost '(usando la contraseña: SÍ)'
¿Cómo puedo arreglar esto?
mysql
sql
database
database-connection
Trivedi duro
fuente
fuente
~/.my.cnf
archivo.-p
opción sola y mysql le pedirá una contraseña.Respuestas:
/etc/my.cnf
o/etc/mysql/my.cnf
, según su distribución.skip-grant-tables
debajo[mysqld]
mysql -u root -p
mysql> flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
mysql -u root -p
fuente
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
Hice esto después del paso 5. Así es como se veía mi salida del símbolo del sistema:MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
sudo systemctl restart mariadb
Todas las soluciones que encontré fueron mucho más complejas de lo necesario y ninguna funcionó para mí. Aquí está la solución que resolvió mi problema. No es necesario reiniciar mysqld o iniciarlo con privilegios especiales.
Con una sola consulta, estamos cambiando auth_plugin a mysql_native_password y configurando la contraseña de root a root (no dude en cambiarla en la consulta)
Ahora debería poder iniciar sesión con root. Se puede encontrar más información en la documentación de mysql
(salga de la consola mysql con Ctrl + D o escribiendo exit )
fuente
Intenté muchos pasos para corregir este problema. Hay tantas fuentes de posibles soluciones a este problema que es difícil filtrar el sentido del sinsentido. Finalmente encontré una buena solución aquí :
Paso 1: identificar la versión de la base de datos
Verás algunos resultados como este con MySQL:
O salida como esta para MariaDB:
Tome nota de qué base de datos y qué versión está ejecutando, ya que las usará más adelante. A continuación, debe detener la base de datos para poder acceder a ella manualmente.
Paso 2: detener el servidor de bases de datos
Para cambiar la contraseña de root, debe cerrar el servidor de la base de datos de antemano.
Puede hacer eso para MySQL con:
Y para MariaDB con:
Paso 3: reiniciar el servidor de base de datos sin verificación de permisos
Si ejecuta MySQL y MariaDB sin cargar información sobre los privilegios del usuario, le permitirá acceder a la línea de comando de la base de datos con privilegios de root sin proporcionar una contraseña. Esto le permitirá obtener acceso a la base de datos sin saberlo.
Para hacer esto, debe evitar que la base de datos cargue las tablas de concesión, que almacenan información de privilegios de usuario. Debido a que este es un riesgo de seguridad, también debe omitir las redes para evitar que otros clientes se conecten.
Inicie la base de datos sin cargar las tablas de concesión o habilitar la conexión en red:
El ampersand al final de este comando hará que este proceso se ejecute en segundo plano para que pueda seguir utilizando su terminal.
Ahora puede conectarse a la base de datos como usuario root, que no debe solicitar una contraseña.
Inmediatamente verá un indicador de shell de la base de datos.
Mensaje de MySQL
Mensaje de MariaDB
Ahora que tiene acceso de root, puede cambiar la contraseña de root.
Paso 4: Cambiar la contraseña de root
Ahora podemos cambiar la contraseña de root.
Para MySQL 5.7.6 y posteriores , así como MariaDB 10.1.20 y posteriores , use el siguiente comando:
Para MySQL 5.7.5 y versiones anteriores , así como MariaDB 10.1.20 y versiones anteriores , use:
Asegúrese de reemplazar
new_password
con su nueva contraseña de elección.Nota: Si el
ALTER USER
comando no funciona, generalmente es indicativo de un problema mayor. Sin embargo, puede intentarUPDATE ... SET
restablecer la contraseña de root en su lugar.[IMPORTANTE] Esta es la línea específica que solucionó mi problema particular:
Recuerde volver a cargar las tablas de concesión después de esto.
En cualquier caso, debería ver la confirmación de que el comando se ha ejecutado correctamente.
La contraseña se ha cambiado, por lo que ahora puede detener la instancia manual del servidor de la base de datos y reiniciarla como estaba antes.
Paso 5: reinicie el servidor de la base de datos normalmente
El tutorial entra en algunos pasos adicionales para reiniciar la base de datos, pero la única pieza que usé fue esta:
Para MySQL, use: $ sudo systemctl start mysql
Para MariaDB, use:
Ahora puede confirmar que la nueva contraseña se ha aplicado correctamente ejecutando:
El comando ahora debe solicitar la contraseña recién asignada. Introdúzcalo y debería obtener acceso a la solicitud de la base de datos como se esperaba.
Conclusión
Ahora tiene acceso administrativo al servidor MySQL o MariaDB restaurado. Asegúrese de que la nueva contraseña de root que elija sea segura y segura y manténgala en un lugar seguro.
fuente
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
ha salvado la vida!Ninguna de las respuestas anteriores me ayudó con este problema, así que aquí está la solución que encontré .
La parte relevante:
fuente
Para usuarios de Ubuntu / Debian
( puede funcionar en otras distribuciones, especialmente las basadas en Debian)
Ejecute lo siguiente para conectarse como
root
(sin ninguna contraseña)Si no desea agregar
--defaults-file
cada vez que desea conectarseroot
, puede copiar/etc/mysql/debian.cnf
en su directorio de inicio:y entonces:
fuente
Después de probar todas las otras respuestas, esto fue lo que finalmente funcionó para mí.
Encontré la respuesta en esta publicación: https://medium.com/@chiragpatel_52497/solved-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06
fuente
skip-grant-table
(my.conf o enmysql
comando) no funcionaron. Podría ingresar usando una cuenta de servicio ( askubuntu.com/a/120769/169836 ) peroUPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';
no funcionó. Solo cuando se usa la parte del complemento las cosas funcionaron. Gracias ~Para los nuevos usuarios de Linux, esta podría ser una tarea desalentadora. Permítanme actualizar esto con mysql 8 (la última versión disponible en este momento es 8.0.12 como el 12-sep-2018)
Eso es.
fuente
En su banco de trabajo MySQL, puede ir a la barra lateral izquierda, en Administración seleccione "Usuarios y privilegios", haga clic en raíz en Cuentas de usuario, en la sección derecha, haga clic en la pestaña "Límites de cuenta" para aumentar las consultas máximas, actualizaciones, etc. luego haga clic en la pestaña "Roles administrativos" y marque las casillas para dar acceso a la cuenta. ¡Espero que ayude!
fuente
Hice esto para establecer mi contraseña de root en la configuración inicial de MySQL en OSx. Abre una terminal.
Cierre la terminal y abra una nueva terminal. Y los siguientes se trabajan en Linux, para establecer la contraseña de root.
(sudo mysqld_safe --skip-grant-tables: Esto no funcionó para mí la primera vez. Pero el segundo intento fue el éxito).
Luego inicie sesión en MySQL
Ahora cambie la contraseña:
Reiniciar MySQL:
fuente
En mi caso bajo Debian 10, el error
fue resuelto por (BUENA MANERA)
MAL CAMINO:
fuente
Ugh, nada funcionó para mí! Tengo una máquina CentOS 7.4 que ejecuta mariadb 5.5.64.
Lo que tuve que hacer fue esto, justo después de la instalación de mariadb de yum;
Luego
mysql_secure_installation
lo guiará por una serie de pasos, incluido "¿Establecer contraseña de root? [S / n]". Solo di "y" y dale una contraseña. Responda las otras preguntas como desee.Luego puede ingresar con su contraseña, utilizando
Sobrevivirá
La clave
Luego, verifiqué el
/bin/mysql_secure_installation
código fuente para descubrir cómo fue mágicamente capaz de cambiar la contraseña de root y ninguna de las otras respuestas aquí pudo. El bit de importación es:... Dice
SET Password=...
y noSET authentication_string = PASSWORD...
. Entonces, el procedimiento adecuado para esta versión (5.5.64) es:Desde el indicador mysql>:
matar a la ejecución mysqld_safe. reiniciar mariadb. Iniciar sesión como root:
mysql -u -p
. Usa tu nueva contraseña.Si lo desea, puede configurar todas las contraseñas raíz a la vez. Creo que esto es sabio:
Esto realizará actualizaciones en todas las contraseñas raíz: es decir, para "localhost", "127.0.0.1" y ":: 1"
En el futuro, cuando vaya a RHEL8 o lo que sea que tenga, trataré de recordar revisar la / bin / mysql_secure_installation y ver cómo lo hicieron los chicos, quienes fueron los que configuraron mariadb para este sistema operativo.
fuente
Si es como yo y todas las sugerencias anteriores fallaron, proceda a desinstalar todas las versiones de mysql en su máquina, busque todos los archivos mysql restantes con este comando
sudo find / -name "mysql"
yrm -rf
cada archivo o directorio con el nombre de mysql adjunto (debe omitir los archivos relacionados a las bibliotecas de lenguaje de programación). Ahora instale una versión nueva de MySQL y disfrute. NB: perderá todos sus datos, así que primero evalúe sus opciones.fuente
Puede suceder si no tienes suficientes privilegios. Escriba
su
, ingrese la contraseña de root e intente nuevamente.fuente
De acuerdo, sé que este es un hilo viejo, pero si llegaste a esta página a través de Google como lo hice y ninguna de las soluciones anteriores funcionó, lo que resultó ser el error fue un 100% de tonterías por mi parte. No me conecté al servidor. Una vez conectado, todo fue fácil.
En caso de que me ayude a conocer mi configuración, estoy usando Sequel Pro y estoy tratando de conectarme con Node usando el paquete NPM, mysql. No pensé que realmente necesitaba conectarme (aparte de ejecutar Sequel Pro) porque ya lo estaba haciendo desde mi aplicación.
fuente
Solución: ¡Ríndete!
Escúchame, pasé unos dos días enteros tratando de hacer que MySQL funcionara en vano, siempre atascado con errores de permiso, ninguno de los cuales fue resuelto por las respuestas en este hilo. Llegué al punto en que pensé que si continuaba me volvería loco.
Por paciencia para hacerlo funcionar, envié el comando para instalar SQLite, solo usando 450 KB, y funcionó perfectamente desde el principio.
¡Si no tienes la paciencia de un santo, ve con SQLite y ahorra mucho tiempo, esfuerzo, dolor y espacio de almacenamiento ...!
fuente