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>
yo tengo
Acceso denegado para el usuario 'root' @ 'localhost' (usando contraseña: SÍ)
Con mySQL -u root -p
inicié 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 preguntas similares.
Respuestas:
TL; DR: para acceder a versiones más nuevas 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
, omysql -u root
dentro de un shell iniciado porsu -
osudo -i
primero)Habiendo hecho la misma actualización, en Ubuntu, tuve el mismo problema.
Lo extraño fue que
Aceptaría mi contraseña y me permitiría configurarla, pero no pude iniciar sesión como a
root
través delmysql
clienteTuve que empezar mariadb con
para obtener acceso como root, mientras que todos los demás usuarios aún podrían acceder bien.
Al mirar la
mysql.user
tabla, noté que laplugin
columna está configurada para la raíz,unix_socket
mientras que todos los demás usuarios están configurados como 'mysql_native_password'. Un vistazo rápido a esta página: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ explica que Unix Socket permite iniciar sesión haciendo coincidiruid
el proceso que ejecuta el cliente con el del usuario en elmysql.user
mesa. En otras palabras, para acceder a mariadb, yaroot
que debe iniciar sesión como root.Efectivamente, reiniciando mi daemon mariadb con autenticación requerida, puedo iniciar sesión como root con
o
Habiendo hecho esto, pensé en cómo acceder sin tener que hacer el sudo, que es solo una cuestión de ejecutar estas consultas de mysql
(reemplazando
<password>
con su contraseña de root mysql deseada). Esto habilitó los inicios de sesión con contraseña para el usuario root.Alternativamente, ejecutando la consulta mysql:
Cambiará la cuenta de root para usar el inicio de sesión con contraseña 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:
Y listo, 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 hacerlo,
sudo mysql -u root -p
así que volveré a eso, pero pensé en publicar mi solución ya que no pude encontrar una en otro lugar.fuente
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
comando dos veces antes de limpiar las privaciones?sudo service mysql restart
En Ubuntu 16.04 LTS limpio, el inicio de sesión de root de MariaDB para localhost cambió del estilo de contraseña al estilo de inicio de sesión sudo ...
entonces, solo hazlo
ya que queremos iniciar sesión con contraseña, creemos otro usuario 'usuario'
en la consola MariaDB ... (se obtiene en la consola MariaDB con 'sudo mysql -u root')
luego en el indicador de shell de bash,
y puede iniciar sesión con 'usuario' con 'su contraseña' en localhost
fuente
Prueba el comando
presione enter y asigne una nueva contraseña para root en mysql / mariadb .
Si recibe un error como
habilitar el servicio con
ahora si vuelves a entrar con
si sigue el problema, ingrese con
sudo su
ymysql -u root -p
ahora aplique permisos a rootGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
esto solucionó mi problema en MariaDB .
Buena suerte
fuente
de la respuesta aceptada por el superusuario :
fuente
Tenía que iniciar sesión en Ubuntu como root para poder acceder a Mariadb como root. Puede tener algo que ver con ese "Harden ..." que le pide que haga cuando lo instala por primera vez. Entonces:
y estás dentro.
fuente
El nuevo comando para eliminar los privilegios es:
FLUSH PRIVILEGES
El antiguo comando
FLUSH ALL PRIVILEGES
ya no funciona.Obtendrá un error que se ve así:
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 :)
fuente
Ejecute mysql_upgrade.
Mira esto
dice
Compruebe que la tabla existe _mysql.proxies_priv_.
Acceso denegado para el usuario 'root' @ 'localhost' al intentar otorgar privilegios. ¿Cómo otorgo privilegios?
fuente
Un sistema como Ubuntu prefiere usar el complemento auth_socket . Intentará autenticarse comparando su nombre de usuario en la base de datos y el proceso que realiza la solicitud mysql; se describe aquí
En su lugar, es posible que desee retroceder con mysql_native_password , que requerirá usuario / contraseña para autenticarse.
Sobre el método para lograrlo, recomiendo este .
fuente