Cómo restablecer su contraseña raíz de MySQL o MariaDB en Ubuntu 20.04 - XpresServers (2023)

El autor seleccionó el Fondo de Ayuda COVID-19 para recibir una donación como parte del programa Write for DOnations.

Introducción

¿Olvidaste la contraseña de tu base de datos? Nos pasa a los mejores. Si ha olvidado o perdido elraízcontraseña a su base de datos MySQL o MariaDB, aún puede obtener acceso y restablecer la contraseña si tiene acceso al servidor y una cuenta de usuario consudoprivilegios

Este tutorial demuestra cómo restablecer elraízcontraseña para las bases de datos MySQL y MariaDB instaladas con elaptoadministrador de paquetes en Ubuntu 20.04. El procedimiento para cambiar la contraseña raíz difiere dependiendo de si tiene instalado MySQL o MariaDB y la configuración predeterminada de systemd que se incluye con la distribución o los paquetes de otros proveedores. Si bien las instrucciones de este tutorial pueden funcionar con otras versiones del sistema o del servidor de la base de datos, se probaron con Ubuntu 20.04 y paquetes proporcionados por la distribución.

Nota:En las instalaciones nuevas de Ubuntu 20.04, la configuración predeterminada de MySQL o MariaDB generalmente le permite acceder a la base de datos (con privilegios administrativos completos) sin proporcionar una contraseña, siempre que realice la conexión desde el sistema.raízcuenta. En este escenario, puede que no sea necesario restablecer la contraseña. Antes de continuar con el restablecimiento de su base de datosraízcontraseña, intente acceder a la base de datos con elsudo mysqldominio. Solo si se modificó la configuración predeterminada para la autenticación, y esto da como resultado unaacceso denegadoerror, siga los pasos de este tutorial.

requisitos previos

Para recuperar tu MySQL o MariaDBraízcontraseña, necesitarás:

Nota:Ambas guías de instalación de bases de datos conservan la configuración predeterminada para la base de datos.raízcuenta donde no se necesita una contraseña para autenticarse, siempre que pueda acceder al sistemaraízcuenta. Todavía puede seguir esta guía para establecer y verificar una nueva contraseña.

Paso 1: Identificar la versión de la base de datos y detener el servidor

Ubuntu 20.04 ejecuta MySQL o MariaDB, un popular reemplazo directo que es totalmente compatible con MySQL. Necesitará usar diferentes comandos para recuperar elraízcontraseña dependiendo de cuál de estos haya instalado, así que siga los pasos de esta sección para determinar qué servidor de base de datos está ejecutando.

Comprueba tu versión con el siguiente comando:

Si está ejecutando MariaDB, verá "MariaDB" precedido por el número de versión en la salida:

Salida MariaDB

distribución mysql Ver 15.110.3.25-MariaDB, para debian-linux-gnu (x86_64) usando readline 5.2

Verá un resultado como este si está ejecutando MySQL:

salida mysql

versión mysql8.0.22-0ubuntu0.20.04.3 para Linux en x86_64 ((Ubuntu))

Tenga en cuenta la base de datos que está ejecutando. Esto determinará los comandos apropiados a seguir en el resto de este tutorial.

Para cambiar elraízcontraseña, deberá cerrar el servidor de la base de datos. Si está ejecutando MariaDB, puede hacerlo con el siguiente comando:

  • sudo systemctl paradamariadb

Para MySQL, apague el servidor de la base de datos ejecutando:

  • sudo systemctl paradamysql

Con la base de datos detenida, puede reiniciarla en modo seguro para restablecer la contraseña de root.

Paso 2: reiniciar el servidor de la base de datos sin verificaciones de permisos

Ejecutar MySQL y MariaDB sin verificación de permisos permite acceder a la línea de comando de la base de datos con privilegios de root sin proporcionar una contraseña válida. Para hacer esto, debe evitar que la base de datos cargue elmesas de subvenciones, que almacenan información de privilegios de usuario. Dado que esto es un riesgo de seguridad, también puede deshabilitar la red para evitar que otros clientes se conecten al servidor temporalmente vulnerable.

Según el servidor de base de datos que haya instalado, la forma de iniciar el servidor sin cargar elmesas de subvencionesdifiere

Configuración de MariaDB para comenzar sin tablas de concesión

Para iniciar el servidor MariaDB sin las tablas de concesión, usaremos elsistemadunit para establecer parámetros adicionales para el demonio del servidor MariaDB.

Ejecute el siguiente comando, que establece la variable de entorno MYSQLD_OPTS utilizada por MariaDB al inicio. El--skip-grant-tablesy--skip-redesLas opciones le dicen a MariaDB que se inicie sin cargar las tablas de concesión o las funciones de red:

  • sudo systemctl conjunto-entorno MYSQLD_OPTS="--skip-grant-tables --skip-redes"

Luego inicie el servidor MariaDB:

  • sudo systemctl iniciar mariadb

Este comando no producirá ningún resultado, pero reiniciará el servidor de la base de datos, teniendo en cuenta la nueva configuración de la variable de entorno.

Puedes asegurarte de que comenzó consudo systemctl estado mariadb.

Ahora debería poder conectarse a la base de datos como MariaDBraízusuario sin proporcionar una contraseña:

Inmediatamente verá un indicador de shell de la base de datos:

Ahora que tiene acceso al servidor de la base de datos, puede cambiar elraízcontraseña como se muestra en el Paso 3.

Configuración de MySQL para comenzar sin tablas de concesión

Para iniciar el servidor MySQL sin sus tablas de concesión, modificará la configuración de systemd para que MySQL pase parámetros de línea de comandos adicionales al servidor al iniciarse.

Para hacer esto, ejecute el siguiente comando:

  • sudo systemctl editar mysql

Este comando abrirá un nuevo archivo en elnanoeditor, que usará para editar MySQLanulaciones de servicio. Estos cambian los parámetros de servicio predeterminados para MySQL.

Este archivo estará vacío. Agrega el siguiente contenido:

Anulaciones del servicio MySQL

[Servicio]ExecStart=ExecStart=/usr/sbin/mysqld--skip-grant-tables --skip-redes

La primeraExecStartdeclaración borra el valor predeterminado, mientras que el segundo proporcionasistemadcon el nuevo comando de inicio, incluidos los parámetros para deshabilitar la carga de las tablas de concesión y las capacidades de red.

PrensaCTRL-xpara salir del archivo, entoncesYpara guardar los cambios que ha realizado, luegoINGRESARpara confirmar el nombre del archivo.

recargar elsistemadconfiguración para aplicar estos cambios:

  • sudo systemctl daemon-recargar

Ahora inicie el servidor MySQL:

  • sudo systemctl iniciar mysql

El comando no mostrará ningún resultado, pero se iniciará el servidor de la base de datos. No se habilitarán las mesas de concesión y networking.

Conéctese a la base de datos como usuario raíz:

Inmediatamente verá un indicador de shell de la base de datos:

Ahora que tiene acceso al servidor, puede cambiar elraízcontraseña.

Paso 3: cambiar la contraseña raíz

El servidor de la base de datos ahora se ejecuta en un modo limitado; las tablas de concesión no están cargadas y no hay soporte de red habilitado. Esto le permite acceder al servidor sin proporcionar una contraseña, pero le prohíbe ejecutar comandos que alteren los datos. Para restablecer elraízcontraseña, debe cargar las tablas de concesión ahora que ha obtenido acceso al servidor.

Dígale al servidor de la base de datos que vuelva a cargar las tablas de concesión emitiendo elPRIVILEGIOS DE DESCARGAdominio:

Ahora puede cambiar elraízcontraseña. El método que use depende de si está usando MariaDB o MySQL.

Cambiar la contraseña de MariaDB

Si está utilizando MariaDB, ejecute la siguiente declaración para establecer la contraseña para elraízcuenta, asegurándose de reemplazarNueva contraseñacon una contraseña nueva y segura que recordarás:

  • ALTERAR USUARIO 'raíz'@'localhost' IDENTIFICADO POR 'Nueva contraseña';

Verá este resultado que indica que la contraseña cambió:

Producción

Consulta OK, 0 filas afectadas (0.001 seg)

MariaDB permite usar mecanismos de autenticación personalizados, así que ejecute las siguientes dos declaraciones para asegurarse de que MariaDB usará su mecanismo de autenticación predeterminado para la nueva contraseña que asignó alraízcuenta:

  • ACTUALIZAR mysql.user SET authentication_string = '' WHERE usuario="raíz";
  • ACTUALIZAR mysql.user SET plugin = '' WHERE usuario="raíz";

Verá el siguiente resultado para cada declaración:

Producción

Consulta OK, 0 filas afectadas (0.01 seg)

La contraseña ahora está cambiada. Tiposalidapara salir de la consola de MariaDB y continuar con el Paso 4 para reiniciar el servidor de la base de datos en modo normal.

Cambiar la contraseña de MySQL

Para MySQL, ejecute la siguiente declaración para cambiar elraízcontraseña del usuario, reemplazandoNueva contraseñacon una contraseña segura que recordarás. MySQL permite usar mecanismos de autenticación personalizados, por lo que la siguiente declaración también asegura que MySQL usará su mecanismo de autenticación predeterminado para autenticar elraízusuario usando la nueva contraseña:

  • ALTERAR USUARIO 'raíz'@'localhost' IDENTIFICADO CON caching_sha2_password POR 'Nueva contraseña';

Verá este resultado que indica que la contraseña se cambió correctamente:

Producción

Consulta OK, 0 filas afectadas (0.01 seg)

La contraseña ahora está cambiada. Salga de la consola MySQL escribiendosalida.

Reiniciemos la base de datos en modo operativo normal.

Paso 4: revertir su servidor de base de datos a la configuración normal

Para reiniciar el servidor de la base de datos en su modo normal, debe revertir los cambios que realizó para habilitar la red y cargar las tablas de permisos. Nuevamente, el método que use depende de si usó MariaDB o MySQL.

Para MariaDB, desactive elMYSQLD_OPTSvariable de entorno que configuró anteriormente:

  • sudo systemctl unset-environment MYSQLD_OPTS

Luego, reinicie el servicio usandosystemctl:

  • sudo systemctl reiniciar mariadb

Para MySQL, elimine la configuración systemd modificada:

  • sudo systemctl revertir mysql

Verá un resultado similar al siguiente:

Producción

Se eliminó /etc/systemd/system/mysql.service.d/override.conf. Se eliminó /etc/systemd/system/mysql.service.d.

Luego, vuelva a cargar la configuración de systemd para aplicar los cambios:

  • sudo systemctl daemon-recargar

Finalmente, reinicie el servicio:

  • sudo systemctl reiniciar mysql

La base de datos ahora se reinicia y vuelve a su estado normal. Confirme que la nueva contraseña funciona iniciando sesión como elraízusuario con contraseña:

Se le pedirá una contraseña. Ingrese su nueva contraseña y obtendrá acceso al aviso de la base de datos como se esperaba.

Conclusión

Ha restaurado el acceso administrativo al servidor MySQL o MariaDB. Asegúrese de que la nueva contraseña que eligió sea fuerte y segura, y guárdela en un lugar seguro.

Para obtener más información sobre la administración de usuarios, los mecanismos de autenticación o las formas de restablecer las contraseñas de la base de datos para otras versiones de MySQL o MariaDB, consulte la documentación oficial de MySQL o la documentación de MariaDB.

FAQs

How do I install MySQL on Ubuntu 20.04 terminal? ›

Here are the steps involved in MySQL Ubuntu Installation 20.04:
  1. Installing MySQL on Ubuntu: Update Package Repository & Install MySQL.
  2. Installing MySQL on Ubuntu: Configure the MySQL Installation.
  3. Installing MySQL on Ubuntu: Add a Dedicated MySQL User.
  4. Installing MySQL on Ubuntu: Grant Privileges to Secure MySQL.
Jan 18, 2022

How to reset root password of MySQL in Ubuntu? ›

How to Change MySQL Root Password in Ubuntu
  1. Step 1: Check the version of MySQL on Ubuntu 20.04.
  2. Step 2: Stop the MySQL server.
  3. Step 3: Skip Grant Tables & Networking.
  4. Step 4: Start the MySQL service.
  5. Step 5: Sign In to the MySQL shell.
  6. Step 6: Change the root password.
Dec 20, 2021

How to reset MariaDB root password in Ubuntu? ›

How to Reset MySQL or MariaDB Root Password
  1. Stop the MySQL/MariaDB service. ...
  2. Start the MySQL/MariaDB server without loading the grant tables. ...
  3. Log in to the MySQL shell. ...
  4. Set a new root password. ...
  5. Stop and Start the database server normally. ...
  6. Verify the password.
Feb 12, 2020

How to reset MySQL 8 root password in Linux? ›

  1. Step 1: Stop the MySQL server. To begin, we must first stop the MySQL service. ...
  2. Step 2, Option 1: use –init-file. To do this, open your code editor and generate a file that contains some SQL code, which will be used to reset the password. ...
  3. Step 2, Option 2: use –skip-grant-tables. ...
  4. Step 3: Log in with the new password.

How to install MySQL 5.7 in Ubuntu 20.04 using terminal? ›

How to Install MySQL 5.7 on Ubuntu 18.04, 20.04, or later
  1. 1 - Download and install MySQL server and client.
  2. 2 - Secure your MySQL root user account.
  3. 3 – Check the MySQL version.
  4. 4 - Add MySQL user and set privileges.
  5. 5 - Test MySQL 5.7.
  6. 6 – Log in to your MySQL server.

How to enable MySQL service in Ubuntu? ›

How to Install and Configure MySQL on Ubuntu
  1. Step 1: MySQL Client Installation. Install the mysql-client to remotely connect with the server: sudo apt install mysql-client -y. ...
  2. Step 2: MySQL Server Installation. ...
  3. Step 3: MySQL Configuration. ...
  4. Step 4: MySQL User Authentication Adjustments.
Mar 24, 2022

How to reset MySQL in Ubuntu? ›

Therefore, without wasting time, let's begin.
  1. Check MySQL Version. ...
  2. Stop MySQL Server. ...
  3. Skip Grant Tables & Networking. ...
  4. Start MySQL Service. ...
  5. Login To MySQL Shell. ...
  6. Reset Root Password. ...
  7. Kill All MySQL Processes and Restart MySQL Service. ...
  8. Login MySQL With New Password.
Jan 11, 2022

How to restart MySQL in Ubuntu? ›

Restart MySQL Server
  1. Running the systemctl command. The systemctl restart command follows the same rules as the systemctl start and stop commands. ...
  2. Executing the service command. The service command is the go-to tool for restarting MySQL in older systems, though it works in newer distros as well. ...
  3. Run the mysql script.
Mar 23, 2023

How to reset root in MySQL? ›

In the mysql client, tell the server to reload the grant tables so that account-management statements work: mysql> FLUSH PRIVILEGES; Then change the 'root'@'localhost' account password. Replace the password with the password that you want to use.

How do I reset my MySQL or MariaDB root password? ›

Start MySQL/MariaDB in Safe Mode with the command:
  1. mysqld_safe --skip-grant-tables & Copy.
  2. mysql -u root mysql. Copy.
  3. UPDATE user SET password=PASSWORD("my-new-password") WHERE user='root'; Copy.
  4. FLUSH PRIVILEGES; Copy.
  5. quit; Copy.
  6. mysqladmin -u root -p shutdown. Copy.
May 12, 2023

How do I reset my MySQL root password MariaDB? ›

To change the root password, type the following at the MySQL/MariaDB command prompt: ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyN3wP4ssw0rd'; flush privileges; exit; Store the new password in a secure location.

How do I reset my MariaDB database? ›

Sudo access to the Linux server running MySQL or MariaDB.
  1. Step 1: Checking the Database Version. ...
  2. Step 2: Stop the Database Server. ...
  3. Step 3: Restart the Database Server Without Checking Permissions. ...
  4. Step 4: Changing the Root Password. ...
  5. Step 5: Normally Restart the Database Server.

How do I find my MySQL root password? ›

How to retrieve MySQL root password
  1. Log in as root into your server through SSH (eg: puTTY/terminal/bash). Alternatively, run the commands that follow as su or sudo as root user. ...
  2. Navigate to /etc/mysql /cd /etc/mysql.
  3. View the file my. cnf either using the command cat or use any text editing software (vi/vim/nano).
Dec 12, 2018

What is the default root password for MySQL 8? ›

The default user for MySQL is root and by default it has no password.

How to install MySQL from terminal? ›

Installing MySQL without Yum
  1. wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb. Next, install the package.
  2. sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb. In the package configuration window, specify your system and the version of the MySQL server you want to install. ...
  3. sudo apt update.

How do I get to MySQL in Ubuntu terminal? ›

Using mysql is very easy. Invoke it from the prompt of your command interpreter as follows: shell> mysql db_name Or: shell> mysql --user=user_name --password=your_password db_name Then type an SQL statement, end it with “;”, \g, or \G and press Enter.

How to install SQL in Ubuntu using terminal? ›

Install SQL Server on Ubuntu
  1. Step 1: Add a repository key. Run the following command to import the public repository GPG keys from the Microsoft website. ...
  2. Step 2: Add a SQL Server repository. ...
  3. Step 3: Install SQL Server. ...
  4. Step 4: Set up SQL Server. ...
  5. Step 5: Verify that SQL Server is running.
Nov 17, 2022

How to start MySQL in Ubuntu terminal? ›

We can enter the below command for starting the MySQL server in Ubuntu:
  1. $ sudo systemctl start mysql. service.
  2. $ sudo systemctl status mysql. service.

References

Top Articles
Latest Posts
Article information

Author: Errol Quitzon

Last Updated: 08/30/2023

Views: 5823

Rating: 4.9 / 5 (59 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Errol Quitzon

Birthday: 1993-04-02

Address: 70604 Haley Lane, Port Weldonside, TN 99233-0942

Phone: +9665282866296

Job: Product Retail Agent

Hobby: Computer programming, Horseback riding, Hooping, Dance, Ice skating, Backpacking, Rafting

Introduction: My name is Errol Quitzon, I am a fair, cute, fancy, clean, attractive, sparkling, kind person who loves writing and wants to share my knowledge and understanding with you.