Estoy trabajando en Xubuntu 15.04. Ya instalé el Servidor MariaDB en varios sistemas y siempre me pidieron una contraseña de root durante la instalación. Esta vez, sin embargo, no recuerdo que me pidieran la contraseña. Cuando intento iniciar sesión sin una contraseña (o una contraseña en blanco), aparece el Access denied for user 'root'@'localhost'
error. Intenté desinstalar el paquete por completo
sudo apt-get remove mariadb-server
sudo apt-get purge mariadb-server
Cuando reinstalé, aún no me pidieron la contraseña de root.
Probé el mysqld --skip-grant-tables
enfoque de
mysql sobre cómo corregir el acceso denegado para el usuario 'root' @ 'localhost' . Puedo modificar la contraseña para el usuario root en la base de datos mysql, al menos el valor hash cambia, pero todavía no puedo iniciar sesión con la nueva contraseña después de reiniciar el servidor mysql. Todavía recibo el mismo error.
El usuario debian-sys-maint no existe. Entonces, no puedo usarlo para arreglar nada.
¿Alguna idea de qué más podría probar?
Respuestas:
Necesita restablecer la contraseña. entonces para eso
fuente
plugin: auth_socket
está habilitada de forma predeterminada. En otras palabras, no hay necesidad de usar--skip-grant-tables
como hubiera sido necesario en versiones anteriores de MySQL. (Además, técnicamente, esta medida no es "restablecer la contraseña"; está desactivando un complemento).La idea con la nueva configuración es que no debería usar contraseñas en absoluto. Vea UNIX_SOCKET Authentication Plugin para más detalles.
Lo que es especialmente relevante es el contenido de /usr/share/doc/mariadb-server-10.0/README.Debian.gz en Ubuntu 16.04:
Entonces, si deshabilita ese complemento para root y establece una contraseña, el trabajo cron diario se interrumpirá ya que se supone que iniciará sesión como root sin una contraseña, pero con el complemento.
Más tarde dice:
Parece que las aplicaciones ya no deberían usar contraseñas.
fuente
"So if you disable that plug-in for root and set a password, the daily cron job will break as it's assuming it will log in as root without a password..."
implicación no obvia de que el complemento de autenticación UNIX_SOCKET está habilitado (que ahora es el predeterminado) es la capacidad de autenticarse ya que el usuario de la base de datos raíz con una contraseña está deshabilitado. En ninguna parte de mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin se menciona esta limitación considerable. En consecuencia, es imposible iniciar sesión como root, por ejemplo, a través de SSH.Resolví el problema siguiendo la respuesta de esta publicación:
No se puede restablecer la contraseña de root de MySQL (MariaDB)
Uno tiene que cambiar el campo del complemento de mysql.user para todas las raíces a una cadena en blanco.
fuente
Lo hice ejecutando este comando, justo después de la instalación:
En el primer paso, la contraseña está en blanco, así que solo presione Entrar
fuente
Tuve el mismo problema en un raapberry pi con estiramiento. Mi solución fue crear un nuevo usuario con todos los privilegios haciendo lo siguiente:
Ahora puedo iniciar sesión y nosotros el usuario "admin" como superusuario.
Espero que esto ayude a alguien.
fuente
Solo use
sudo mysql -u root
- eso es todoDetalles: las versiones más recientes se autentican en mysql mediante la autenticación del sistema. Entonces, si puede sudo al sistema operativo, se supone que también es db root. Puede confirmar esto emitiendo
sudo mysql -u root -e "USE mysql; SELECT User, Host, plugin FROM mysql.user;"
. Deberías ver algo como esto (tal vez conauth_socket
otras distribuciones)fuente