mysql - solucion - Acceso denegado para el usuario ''root'' @ ''localhost''(usando la contraseña: YES) después de una nueva instalación en Ubuntu
error 1045 mysql ubuntu (10)
Ejecute mysql_upgrade.
Mira esto
GRANT ALL PRIVILEGES ON ... WITH GRANT OPTION
dice
sudo mysql -u root
use mysql;
update user set plugin='''' where User=''root'';
flush privileges;
exit;
Compruebe que la tabla existe _mysql.proxies_priv_.
Acceso denegado para el usuario ''root'' @ ''localhost'' al intentar otorgar privilegios. ¿Cómo otorgo privilegios?
Hoy hice un inicio de sesión como root en Ubuntu 14.04.1 LTS ll
y luego
apt-get install mariadb-server
(sin sudo pero como root).
Con
mySQL -h localhost -u root --password=<PW>
obtuve
Acceso denegado para el usuario ''root'' @ ''localhost'' (usando la contraseña: YES)
Con
mySQL -u root -p
sesión en la base de datos e hice
GRANT ALL PRIVILEGES ON *.* TO ''root''@''localhost'' IDENTIFIED BY ''<PW>'';
FLUSH ALL PRIVILEGES;
Pero esto no ayudó. ¿Tiene usted alguna idea? No encontré la respuesta para las preguntas similares.
El nuevo comando para eliminar los privilegios es:
FLUSH PRIVILEGES
El antiguo comando
FLUSH ALL PRIVILEGES
ya no funciona.
Obtendrá un error similar al siguiente:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): 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 ''ALL PRIVILEGES'' at line 1
Espero que esto ayude :)
El sistema como Ubuntu prefiere usar el complemento auth_socket . Intentará autenticarse comparando su nombre de usuario en DB y el proceso que realiza la solicitud mysql; se describe here
El complemento de socket comprueba si el nombre de usuario del socket (el nombre de usuario del sistema operativo) coincide con el nombre de usuario de MySQL especificado por el programa cliente al servidor, y permite la conexión solo si los nombres coinciden.
En cambio, es posible que desee volver con la contraseña mysql_native_password , que requerirá usuario / contraseña para autenticarse.
Sobre el método para lograr eso, recomiendo this en this lugar.
En Ubuntu 16.04 LTS limpio, el inicio de sesión raíz de MariaDB para localhost cambió del estilo de contraseña al estilo de inicio de sesión sudo ...
entonces, solo haz
sudo mysql -u root
ya que queremos iniciar sesión con contraseña, cree otro usuario ''usuario''
en la consola MariaDB ... (obtienes en la consola MariaDB con ''sudo mysql -u root'')
use mysql
CREATE USER ''user''@''localhost'' IDENTIFIED BY ''yourpassword'';
/q
entonces en bash shell prompt,
mysql-workbench
y puede iniciar sesión con ''usuario'' con ''su contraseña'' en localhost
Prueba el comando
sudo mysql_secure_installation
presione enter y asigne una nueva contraseña para root en mysql / mariadb .
Si obtiene un error como
ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket ''/var/run/mysqld/mysqld.sock''
habilitar el servicio con
service mysql start
ahora si vuelves a entrar con
mysql -u root -p
si sigue el problema, ingrese con
sudo su
y
mysql -u root -p
ahora aplique permisos a
root
GRANT ALL PRIVILEGES ON *.* TO ''root''@''localhost'' IDENTIFIED BY ''<password>'';
Esto solucionó mi problema en MariaDB .
Buena suerte
Solo necesitas usar sudo para que funcione
sudo mysql_secure_installation
Tuve que iniciar sesión en Ubuntu como root para acceder a Mariadb como root. Puede tener algo que ver con ese "Endurecimiento ..." que te indica que hagas la primera vez que lo instales. Entonces:
$ sudo su
[sudo] password for user: yourubunturootpassword
# mysql -r root -p
Enter password: yourmariadbrootpassword
y estas dentro
Una vez tuve un problema similar. En mi caso, sucedió porque de alguna manera corrompí mi tabla de usuario del servidor MySQL.
Este artículo me ayudó: mysql-how-to-fix-Access-denied-for-user-''root''@''localhost''
Básicamente, debe restablecer el usuario root.
del superusuario aceptó la respuesta :
SHOW GRANTS FOR ''root''@''localhost'';
TL; DR:
Para acceder a las versiones más recientes de mysql / mariadb después como usuario root, después de una nueva instalación, debe estar en un shell raíz (es decir,
sudo mysql -u root
, o
mysql -u root
dentro de un shell iniciado por
su -
o
sudo -i
primero)
Habiendo hecho la misma actualización, en Ubuntu, tuve el mismo problema.
Lo extraño fue que
sudo /usr/bin/mysql_secure_installation
Aceptaría mi contraseña y me permitiría configurarla, pero no pude iniciar sesión como
root
través del cliente
mysql
Tuve que comenzar mariadb con
sudo mysqld_safe --skip-grant-tables
para obtener acceso como root, mientras que todos los demás usuarios aún pueden acceder bien.
Al observar la tabla
mysql.user
, noté que la raíz del
plugin
está configurada en
unix_socket
mientras que todos los demás usuarios está configurada en ''mysql_native_password''.
Un vistazo rápido a esta página:
https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/
explica que el Unix Socket permite iniciar sesión haciendo coincidir
uid
del proceso que ejecuta el cliente con el del usuario en la tabla
mysql.user
.
En otras palabras, para acceder a mariadb como
root
, debe iniciar sesión como root.
Efectivamente, reiniciar mi demonio mariadb con autenticación requerida puedo iniciar sesión como root con
sudo mysql -u root -p
o
sudo su -
mysql -u root -p
Una vez hecho esto, pensé en cómo acceder sin tener que hacer el sudo, que es solo una cuestión de ejecutar estas consultas mysql
GRANT ALL PRIVILEGES on *.* to ''root''@''localhost'' IDENTIFIED BY ''<password>'';
FLUSH PRIVILEGES;
(reemplazando
<password>
con la contraseña de root mysql deseada).
Esta contraseña habilitada inicia sesión para el usuario root.
Alternativamente, ejecutando la consulta mysql:
UPDATE mysql.user SET plugin = ''mysql_native_password'' WHERE user = ''root'' AND plugin = ''unix_socket'';
FLUSH PRIVILEGES;
Cambiará la cuenta de root para usar la contraseña de inicio de sesión sin cambiar la contraseña, pero esto puede dejarlo con una instalación de mysql / mariadb sin contraseña de root.
Después de cualquiera de estos, debe reiniciar mysql / mariadb:
sudo service mysql restart
Y voila tuve acceso desde mi cuenta personal a través de
mysql -u root -p
TENGA EN CUENTA QUE HACER ESTO REDUCE LA SEGURIDAD Presumiblemente, los desarrolladores de MariaDB han optado por que el acceso a la raíz funcione de esta manera por una buena razón.
Pensando en ello, estoy bastante feliz de tener que
sudo mysql -u root -p
así que estoy volviendo a eso, pero pensé en publicar mi solución ya que no pude encontrar una en otro lugar.