ERROR 1045 (28000): acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: SÍ)

184

Soy un ingeniero eléctrico que juega principalmente con sistemas de energía en lugar de programar. Recientemente, he estado siguiendo un manual para instalar un paquete de software en Ubuntu. No tengo conocimiento de mySQLnada, en realidad. He realizado las siguientes instalaciones en mi Ubuntu.

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

Entonces lo hago

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

Terminé con el siguiente mensaje de error.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

¿Cómo puedo solucionarlo y continuar?

Sibbs Gambling
fuente
1
Esto no parece estar estrictamente relacionado con la programación para mí. Lo marqué para migrar a SuperUser
Uli Köhler
Futuros visitantes, también no se olvide de comprobar las varias causas explican aquí: dev.mysql.com/doc/refman/8.0/en/problems-connecting.html
aderchox

Respuestas:

155

Nota: Para MySQL 5.7+ , consulte la respuesta de @Lahiru a esta pregunta. Que contiene más información actual.

Para MySQL <5.7:

La contraseña raíz predeterminada está en blanco (es decir, una cadena vacía) no root. Entonces puedes iniciar sesión como:

mysql -u root

Obviamente, debe cambiar su contraseña de root después de la instalación

mysqladmin -u root password [newpassword]

En la mayoría de los casos, también debe configurar cuentas de usuario individuales antes de trabajar extensamente con la base de datos.

Mike Brant
fuente
55
@FarticlePilter La -pbandera especifica la contraseña, por lo que después de cambiar su contraseña de root le gustaría mysql -u root -p[newpassword]. El < [filename]es mediante la entrada std para ejecutar un archivo SQL en la ruta dada a través de la credencial de usuario que proporcione.
Mike Brant
27
Lo intenté como se me dijo mysqladmin -u root password abc1234, pero lo conseguí mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'. Muchas gracias!
Sibbs Gambling
2
@Kanagaroo en esta pregunta, el OP afirma que acaban de instalar MySQL por primera vez y luego intentaron acceder a través del cliente de línea de comandos MySQL. Eso suena como el primer acceso a mí.
Mike Brant
18
En realidad, para mysql community server 5.7, la contraseña raíz predeterminada se genera aleatoriamente cuando se instala. Consulte su /var/log/mysqld.log para ver una línea que habla de una "contraseña temporal". Ahorra horas de perder el tiempo.
Phil
1
@BraianMellor Esto resuelve el problema para MySQL <5.7 en que la contraseña raíz predeterminada (posterior a la instalación) en Ubuntu está en blanco (sin contraseña), donde en la pregunta original el póster intentaba usar root / root. La pregunta no era sobre la contraseña perdida, el cambio de contraseña o similar. Para las versiones más recientes de MySQL, la otra respuesta a la que hice referencia es la correcta, ya que un usuario debe buscar en los registros de errores para ver la contraseña de root generada aleatoriamente.
Mike Brant
114

Pude resolver este problema ejecutando esta declaración

sudo dpkg-reconfigure mysql-server-5.5

Lo que cambiará la contraseña de root.

Divz
fuente
10
Justo lo que necesitaba ... pero no todos tienen la versión 5.5 del servidor. use dpkg --get-selections | grep sqlpara obtener su versión
Balmipour
1
@Balmipour, cuál debería ser el comando equivalente para verificar la versión SQL en Rhel 6.x
PrathamN
1
@Divz cuál debería ser el comando para reconfigurar el servidor mysql en Rhel / centos
PrathamN
@PrathamN Nunca usé el rojo, pero buscar en Google "versiones de paquetes de verificación de sombrero rojo" me da comandos como este: yum list installedagregar | grep sqlpara filtrar solo los paquetes SQL.
Balmipour
1
Cuando ejecuto este comando en Mac OS X, me sale este error: sudo: dpkg-reconfigure: command not found. ¿Cualquier sugerencia?
mOna
90

Tienes que restablecer la contraseña! pasos para mac osx (probado y funcionando) y ubuntu

Dejar de usar MySQL

sudo service mysql stop

o

$ sudo /usr/local/mysql/support-files/mysql.server stop

Comience en modo seguro:

$ sudo mysqld_safe --skip-grant-tables --skip-networking

(la línea de arriba es el comando completo)

Este será un comando continuo hasta que finalice el proceso, así que abra otra ventana de shell / terminal, inicie sesión sin contraseña:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

Según el comentario de @ IberoMedia, para las versiones más recientes de MySQL, el campo se llama authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

Inicie MySQL usando:

sudo service mysql start

o

sudo /usr/local/mysql/support-files/mysql.server start

su nueva contraseña es 'contraseña'.

tk_
fuente
3
¡Por favor, NO de esa manera! La respuesta de @ Divz es más segura. Citando el documento sobre --skip-grant-tables: Esto permite que cualquiera se conecte sin una contraseña y con todos los privilegios [...] Debido a que esto es inseguro, [...] --skip-grant-tablesúsela --skip-networkingpara evitar la conexión de clientes remotos. Ah, y también, este no funcionó para mí. Por eso vine aquí: p
Balmipour
1
Si vas por ese camino , sí. No funcionó para mí, y seguir la respuesta de @ Divz me parece mucho más fácil, de todos modos --Lo que sugeriría es usar dpkg --get-selections | grep mysql-server-para obtener su versión exacta de MySQL, luego vaya a sudo dpkg-reconfigure mysql-server-5.x (reemplace 5 .x con la versión de su servidor, por cierto). Comenté la respuesta de @ Divz con esta precisión, pero está enmascarada por varios comentarios de "gracias".
Balmipour
44
actualizar el conjunto de usuarios autenticación_cadena = contraseña ('1111') donde usuario = 'raíz';
Dejell
2
Esto realmente funcionó ... las otras soluciones todavía me dieron el mismo error.
eddy147
2
Desde MySQL 5.7.6, la columna Contraseña cambió su nombre a "autenticación_cadena". Aquí puede leer más al respecto: bugs.mysql.com/bug.php?id=76655
IberoMedia
55

Sé que es una vieja pregunta, pero creo que esto podría ayudar a alguien. Recientemente me enfrenté con el mismo problema, pero en mi caso, recuerdo mi contraseña bastante bien, pero siguió dándome el mismo error. Probé tantas soluciones pero todavía ninguna ayudó, entonces intenté esto

mysql -u root -p 

después de lo cual te pide una contraseña como esta

Enter password: 

y luego escribí la contraseña que usé. Eso es todo

XY-JOE
fuente
3
Es curioso que esto haya ayudado después de días de investigación.
girish_vr
Bueno saber @girish_vr
XY-JOE
¡Trabajó para mi! Mi versión de servidor mysql es: Versión del servidor: 8.0.13 Servidor de la comunidad MySQL - GPL
kaspiotr
Esto ayudó, que es tan increíblemente estúpido en el lado de MySQL que todavía no puedo creerlo.
wscourge
39

En el inicio inicial del servidor sucede lo siguiente, dado que el directorio de datos del servidor está vacío:

  • El servidor está inicializado.
  • El certificado SSL y los archivos de clave se generan en el directorio de datos.
  • El complemento validate_password está instalado y habilitado.
  • Se crea la cuenta de superusuario 'root' @ 'localhost'. La contraseña para el superusuario se establece y almacena en el archivo de registro de errores.

Para revelarlo, use el siguiente comando:

shell> sudo grep 'temporary password' /var/log/mysqld.log

Cambie la contraseña de root lo antes posible iniciando sesión con la contraseña temporal generada y establezca una contraseña personalizada para la cuenta de superusuario:

shell> mysql -u root -p #Login to root user with some password

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 
Lahiru
fuente
16
Esto parecía prometedor, pero no funciona para mí. Cuando corro sudo grep 'temporary password' /var/log/mysqld.logme sale/var/log/mysqld.log: No such file or directory
Eric Hepperle - CodeSlayer2010
44
Tratar sudo grep 'temporary password' /var/log/mysql/error.log. La solución @Lahiru funcionó para mí.
artemisian
17
Intenté sudo grep 'contraseña temporal' /var/log/mysql/error.log pero no devuelve nada.
alumno
2
Tratar shell> sudo grep 'password' /var/log/mysql/error.log. Funcionó para mí, pero obtengo: ¡ root @ localhost se crea con una contraseña vacía! Considere desactivar la opción --initialize-insecure. Mi versión de mysql es: Ver 8.0.13 para Linux en x86_64 (MySQL Community Server - GPL)
kaspiotr
1
@EnginYilmaz ¿por qué sugiere un comando mysql cuando el problema es que mysql ni siquiera es accesible?
R-obert
34

si el problema persiste, intente forzar el cambio del pase

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

Configurar nueva contraseña de usuario root de MySQL

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Detenga el servidor MySQL:

/etc/init.d/mysql stop

Inicie el servidor MySQL y pruébelo:

mysql -u root -p
Yasin Hassanien
fuente
1
Gracias. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)También estaba plagando mi servidor. 'mysqld_safe' también falló hasta que hice un 'killall mysqld' DESPUÉS de su Paso 1.
Marcos
¡Por favor, NO de esa manera! La respuesta de @ Divz es más segura. Citando el documento sobre --skip-grant-tables: Esto permite que cualquier persona se conecte sin una contraseña y con todos los privilegios [...] Debido a que esto es inseguro, [...] --skip-grant-tablesúsela --skip-networkingpara evitar la conexión de clientes remotos. Ah, y también, este no funcionó para mí. Por eso vine aquí: p
Balmipour
2
Me está dando: ERROR 1054 (42S22): columna desconocida 'contraseña' en 'lista de campos'
MD. Mohiuddin Ahmed
Compruebe la respuesta de @Anshu, es una forma más segura de manejar esto
Mugoma J. Okomba
1
@ MD.MohiuddinAhmed Debe estar utilizando una versión más reciente de mysql-server. Consulte esta respuesta: stackoverflow.com/a/31122246/6242649
Udayraj Deshmukh
32

Sucede cuando falta su contraseña.

Pasos para cambiar la contraseña cuando haya olvidado:

  1. Detenga el servidor MySQL (en Linux):

    sudo systemctl stop mysql
  2. Inicie la base de datos sin cargar las tablas de concesión o habilitar la conexión en red:

    sudo mysqld_safe --skip-grant-tables --skip-networking &

    El signo y al final de este comando hará que este proceso se ejecute en el
    segundo plano para que pueda continuar utilizando su terminal y ejecutar #mysql -u root, no le pedirá contraseña.

    Si obtiene un error como el siguiente:

    2018-02-12T08: 57: 39.826071Z mysqld_safe El directorio '/ var / run / mysqld' para el
    archivo de socket UNIX no existe. mysql -u root ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket
    '/var/run/mysqld/mysqld.sock' (2) [1] + Salir 1

  3. Hacer el directorio de servicio MySQL.

    sudo mkdir /var/run/mysqld

    Otorgue permiso al usuario de MySQL para escribir en el directorio de servicios.

    sudo chown mysql: /var/run/mysqld
  4. Ejecute el mismo comando en el paso 2 para ejecutar mysql en segundo plano.

  5. Ejecute mysql -u root obtendrá la consola mysql sin ingresar la contraseña.

    Ejecute estos comandos

    FLUSH PRIVILEGES;

    Para MySQL 5.7.6 y más reciente

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

    Para MySQL 5.7.5 y anteriores

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

    Si el comando ALTER USER no funciona, use:

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')     WHERE User = 'root' AND Host = 'localhost';

Ahora salga

  1. Para detener la instancia iniciada manualmente

    sudo kill `cat /var/run/mysqld/mysqld.pid`
  2. Reiniciar mysql

    sudo systemctl start mysql
Sameer Kumar Choudhary
fuente
2
En mi caso, tengo que modificar el Paso 6 comosudo kill `sudo cat /var/run/mysqld/mysqld.pid`
kolunar
1
Este es el que funcionó para mí. En el paso 5, haga 1. use USUARIO 2. Para cambiar la contraseña use -> actualice el conjunto de usuarios autenticación_cadena = CONTRASEÑA ("contraseña") donde Usuario = 'root';
Bikram
1
Esta es la mejor solución, pude descubrir. Uso de "5.7.26 MySQL Community Server (GPL)" en macOS Mojave en un modelo MBP '15. Tuve que detener Mysql de System Preference, y luego seguí los pasos 2 y 5. Y luego tuve que matar el proceso MySQL buscando el PID usando ps -ef | grep mysql.
cspider
12

Encontré este problema muy molesto y encontré muchas respuestas que no funcionaron. La mejor solución que encontré fue desinstalar completamente mysql y volver a instalarlo. Al volver a instalar, establece una contraseña de root y esto solucionó el problema.


sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

Encontré este código en otro lugar, así que no me atribuyo ningún crédito. Pero funciona. Para instalar mysql después de desinstalarlo, creo que digital ocean tiene un buen tutorial. Mira mi esencia para esto.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096

JamesD
fuente
12

Estoy usando Ubuntu-16.04: mysql instalado - 5.7. Tuve el mismo problema: inicio de sesión denegado para el usuario root.

Intenté los siguientes pasos:

  1. dpkg --get-selections | grep mysql (para obtener la versión de mysql).

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

Sin -p que no le pide que solicite la contraseña. Una vez que esté dentro, puede crear un usuario con una contraseña siguiendo estos pasos:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

Salga de la raíz e inicie sesión desde la que indicó anteriormente.

mysql -u <your_new_username> -p

Por alguna razón, simplemente escribir mysql no funciona. EN ABSOLUTO. Sugiero que sea un hábito de usar mysql -u <name> -p.

Nikhil Rushmith
fuente
8

solo ingresa a la terminal

mysql -u root -p. entonces te pedirá contraseña

Vahap Gencdal
fuente
8

Si ninguna de las otras respuestas funciona para usted y recibió este error:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

Siga los comandos a continuación paso a paso hasta que restablezca su contraseña:

# Stop Your Server First
sudo service mysql stop

# Make MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host

FLUSH PRIVILEGES;
EXIT;

#kill mysqld_safe process
sudo service mysql restart

#Now you can use your new password to login to your Server
mysql -u root -p

#take note for remote access you should create a remote user and then grant all privileges to that remote user
Mehdi
fuente
Esta es la respuesta correcta para mysql 5.7 en Ubuntu 18.04 LTS también. Gracias
Dhiraj
Para todas las direcciones remotas: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf -> bind-address = 0.0.0.0
Mehdi
7

Instalé MySQL como usuario root ( $SUDO) y obtuve este mismo problema.
Así es como lo solucioné:

  1. $ sudo cat /etc/mysql/debian.cnf

Esto mostrará detalles como-

# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

Arriba podemos ver la contraseña, solo la usaremos(GUx0RblkD3sPhHL5) en el indicador

  1. mysql -u debian-sys-maint -p Enter password:
    ahora proporcione la contraseña ( GUx0RblkD3sPhHL5 ).

  2. Ahora exitdesde MySQL e inicie sesión nuevamente como-

    mysql -u root -p Enter password:
    Ahora proporcione una nueva contraseña. Eso es todo, tenemos una nueva contraseña para otros usos.

Funcionó para mí, ¡espero que te ayude también!

S.Yadav
fuente
6

Por favor lea la documentación oficial: Mysql: Cómo restablecer la contraseña de root

Si tiene acceso a la terminal:

MySQL 5.7.6 y posterior:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 y anterior:

$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
d.danailov
fuente
1
Da: ERROR 1131 (42000): Está utilizando MySQL como usuario anónimo y los usuarios anónimos no pueden cambiar las contraseñas
MD. Mohiuddin Ahmed
1
Es normal. Tu usuario es anónimo. Necesitas ejecutar> mysql -u {your_username}
d.danailov
3

Estoy usando mysql-5.7.12-osx10.11-x86_64.dmg en Mac OSX

El proceso de instalación configura automáticamente una contraseña temporal para el usuario root. Debes guardar la contraseña. La contraseña no se puede recuperar.

Sigue las instrucciones

  1. Ir cd /usr/local/mysql/bin/
  2. Ingrese la contraseña temporal (que se vería así, "tsO07JF1 => 3")
  3. Debería obtener mysql> prompt.
  4. Ejecute, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');si desea establecer su contraseña: "root", entonces el comando sería,SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. correr ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. correr exit
  7. correr ./mysql -u root -p
  8. Escribe tu contraseña. En mi caso, escribiría "root" (sin comillas)
  9. Eso es todo.

Para mayor comodidad, debe agregar "/usr/local/mysql/bin" a su RUTA

Ahora desde cualquier lugar puedes escribir ./mysql -u root -p y luego escribir la contraseña y obtendrá mysql> prompt.

Espero eso ayude.

tausiq
fuente
3

La respuesta puede sonar tonta, pero después de perder horas de tiempo, así es como lo hice funcionar

mysql -u root -p

Recibí el mensaje de error

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Aunque estaba escribiendo la contraseña correcta (la contraseña temporal que obtienes cuando instalas mysql por primera vez)

Lo entendí bien cuando escribí la contraseña cuando el indicador de contraseña parpadeaba

Amit Kumar
fuente
2

si el problema persiste, intente forzar el cambio del pase

Detenga el servidor MySQL (en Linux):

/etc/init.d/mysql stop

Detenga el servidor MySQL (en Mac OS X):

mysql.server stop

Inicie el demonio mysqld_safe con --skip-grant-tables

mysqld_safe --skip-grant-tables &
mysql -u root

Configurar nueva contraseña de usuario root de MySQL

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Detenga el servidor MySQL (en Linux):

/etc/init.d/mysql stop

Detenga el servidor MySQL (en Mac OS X):

mysql.server stop

Inicie el servicio del servidor MySQL y pruebe para iniciar sesión por root:

mysql -u root -p
Max Yao
fuente
1

La contraseña predeterminada será nula, por lo que debe cambiar la contraseña siguiendo los pasos a continuación.

conectarse a mysql

root # mysql

Use mysql

mysql> actualizar contraseña de usuario = CONTRASEÑA ('root') donde Usuario = 'root'; Finalmente, vuelva a cargar los privilegios:

mysql> privilegios de descarga; mysql> salir

Rizwan Basheer
fuente
1

Solo una línea y resolvió mi problema.

sudo dpkg-reconfigure mysql-server-5.5
Satyendra Sahani
fuente
1

En Ubuntu 16.04 (MySQL versión 5.7.13) pude resolver el problema con los pasos a continuación:

  1. Siga las instrucciones de la sección B.5.3.2.2 Restablecimiento de la contraseña de root: Unix y Unix-Like Systems MySQL 5.7 manual de referencia

  2. Cuando intenté #sudo mysqld_safe --init-file = / home / me / mysql-init y falló. El error estaba en /var/log/mysql/error.log

    2016-08-10T11: 41: 20.421946Z 0 [Nota] Se inició la ejecución de init_file '/ home / me / mysql / mysql-init'. 2016-08-10T11: 41: 20.422070Z 0 [ERROR] / usr / sbin / mysqld: archivo '/ home / me / mysql / mysql-init' no encontrado (Código de error: 13 - Permiso denegado) 2016-08-10T11: 41: 20.422096Z 0 [ERROR] Abortando

El permiso de archivo de mysql-init no fue el problema, es necesario editar el permiso de apparmor

  1. Editar por #sudo vi /etc/apparmor.d/usr.sbin.mysqld

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
  2. Hacer #sudo /etc/init.d/apparmor reload

  3. Inicie mysqld_safe nuevamente, intente el paso 2 anterior. Compruebe /var/log/mysql/error.log, asegúrese de que no haya errores y que mysqld se inicie correctamente

  4. Ejecute #mysql -u root -p

    Introducir la contraseña:

Ingrese la contraseña que especificó en mysql-init. Debería poder iniciar sesión como root ahora.

  1. Shutdown mysqld_safe por #sudo mysqladmin -u root -p shutdown

  2. Inicie mysqld de manera normal con #sudo systemctl inicie mysql

codegen
fuente
1

Si tiene MySQL como parte de una imagen Docker (digamos en el puerto 6606) y una instalación de Ubuntu (en el puerto 3306) especificando que el puerto no es suficiente:

mysql -u root -p -P 6606

arrojará:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

ya que está tratando de conectarse a localhost de manera predeterminada, al especificar su IP local se soluciona el problema:

mysql -u root -p -P 6606 -h 127.0.0.1
botris
fuente
0

En versiones recientes de MySQL no hay passwordenmysql.user tabla.

Entonces necesitas ejecutar ALTER USER. Ponga este comando de una línea en el archivo.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Y ejecútelo como archivo de inicio (como usuario root o mysql)

mysqld_safe --init-file=/home/me/mysql-init &

El servidor MySQL debe detenerse para comenzar mysqld_safe.

Además, puede haber un problema con los permisos de apparmor para cargar este archivo de inicio. Lea más aquí https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql

Vladimir Kovalchuk
fuente
0

Si aún no ha configurado la contraseña, ejecute mysql -uroot, funciona para mí.

ahbon
fuente
0

En Mac, si tiene problemas para iniciar sesión con la primera contraseña que se le dio en la instalación, tal vez pueda simplemente matar el proceso mysql y luego intentarlo.

Entonces: 1- ejecuta el siguiente comando para encontrar el PID de mysql:

ps -aef | grep mysql | grep -v grep

2- mata el proceso:

kill -15 [process id] 

Luego puede iniciar sesión con la contraseña inicial con este comando:

mysql -uroot -p

Que le pide que ingrese su contraseña. Simplemente ingrese la contraseña inicial.

Maryam Zakani
fuente
0

Tuve un problema similar:

ERROR 1045 (28000): acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: NO)

Pero en mi caso, la causa fue realmente tonta. Copié el comando de un documento de Word, y el problema era que un guión no tenía el código ASCII 2D sino el Unicode E28093.

Camino equivocado:

mysql -u root pxxxx

Manera correcta:

mysql -u root -pxxxx

Ambos se ven iguales pero no son iguales (pruébalo, copia y pega reemplazando tu contraseña).

Ante este tipo de error, la recomendación es intentar escribir el comando en lugar de copiar y pegar.

cesargastonec
fuente
0

Intenté con la respuesta correcta de @Lahiru, pero no funcionó con el servidor MySQL versión 8.0.16 (Comunidad) en macOS Mojave.

Seguí las instrucciones de Sameer Choudhary arriba y con algunos ajustes, pude cambiar la contraseña de root y habilitar el acceso root desde localhost.

Actualización: no se requieren todos estos, si está instalando en Mac OS usando homebrew: "brew install mysql"

cspider
fuente
0

Tuve este problema con Ubuntu 18.04 LTS y Mysql Server versión 5.7.27-0ubuntu0.18.04.1 (Ubuntu).

Mi solución fue (ejecutándose como root con sudo -i)

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES ;
EOSQL

mysqladmin -u root password new_pw
Frank Hintsch
fuente
0

También me encontré con el mismo problema, lo que hice fue

1) Abre tu cmd

2) Navegue a C: \ Archivos de programa \ MySQL \ MySQL Server 8.0 \ bin> (donde MySQL Server 8.0 puede ser diferente dependiendo del servidor que instaló)

3) Luego ponga el siguiente comando mysql -u root -p

4) Solicitaré la contraseña ... simplemente presione enter, ya que a veces la contraseña que ingresó durante la instalación cambia a en blanco.

ahora simplemente puede acceder a la base de datos

Esta solución me funcionó en la plataforma de Windows

Aman-D
fuente
0

Si bien la respuesta principal (w / mysqladmin) funcionó en mac 10.15, entonces no funcionó en ubuntu. Luego probé muchas de las otras opciones, incluido el inicio seguro para mysql, ninguna funcionó. Añadiendo así una nueva respuesta.

Al menos para la versión que obtuve 5.7.28-0ubuntu0.18.04.4, faltaban respuestas IDENTIFIED WITH mysql_native_password. 5.7.28 es el valor predeterminado en el LTS actual y, por lo tanto, debería ser el predeterminado para la mayoría de los nuevos sistemas nuevos (hasta que salga 20.04 LTS).

Encontrado: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server y ahora aplicado

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

que funciona

Arntg
fuente
0

El error que enfrenté fue

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

fue un problema con el puerto funcionando.

Por defecto, mysql se está ejecutando port 3306.

Puede verificar eso ejecutando

  • en un sistema de 32 bits:

    sudo /opt/lampp/manager-linux.run

  • en un sistema de 64 bits:

    sudo /opt/lampp/manager-linux-x64.run

y haga clic en el configurebotón

panel de control de xampp

En mi caso, el puerto se estaba ejecutando en 3307 y el comando que usé fue

mysql -u root -p -P 3307 -h 127.0.0.1
Rochana Pathiraja
fuente
0

En mi caso estaba tratando de pasar un comando a un contenedor. En cuyo caso solo se interpretó la primera palabra. Asegúrate de no estar ejecutando:

mysql

Opuesto a:

mysql -uroot -ppassword schemaname

quizás intente citar:

'mysql -uroot -ppassword schemaname'
Nae
fuente