Linux Tutorials and Unix Similar multi-user operating systems based on the Linux kernel and essentially on GNU software. Like CentOS, Debian, Ubuntu Fedora.
After forgetting or losing the MySQL root password, there is no need to panic. In this tutorial I will show you how to reset the MySQL root password quickly and easily.
Resetting the root password is a simple process. This tutorial shows the simplest method of several for resetting the MySQL root password.
The instructions apply only to the open source database MariaDB, the popular fork of the MySQL database server. Additional shell commands are used that are not available in MySQL.
MySQL Root Password Reset
The following few steps require shell access with a local user account on the system running MariaDB/MySQL, the user must provide sudo rights to execute commands in the terminal shell with elevated privileges.
Stop MySQL server
First stop the MariaDB/MySQL server and terminate the service.
sudo systemctl stop mysqld
Start MySQL server without password
Now start a temporary SQL Server instance as follows.
sudo -u mysql mysqld --skip-grant-tables &
When the MySQL server is started with the --skip-grant-tables option, the grant tables aren’t loaded, so no access control is applied. Users are able to access the MariaDB/MySQL server now without a password.
You can now log in to the MariaDB/MySQL server as root in a terminal shell without requiring a password.
mysql -u root
MySQL Root Password Reset
Next run the command to reset the current permissions.
FLUSH PRIVILEGES;
Now reset the MySQL root password with the following command.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Replace the placeholder “NewPassword” with the desired password.
Finally, re-read the permissions and exit MySQL.
FLUSH PRIVILEGES;
quit
The MySQL root password has now been changed, now the previously started temporary MySQL server is stopped. This can be achieved with the following shell command.
Now restart the MariaDB server and log in with the new password.
sudo systemctl start mysqld
mysql -u root -p
The MariaDB/MySQL server is under full control again.
Forgot MySQL root password
sudo -u mysql mysqld --skip-grant-tables & after hit the command sometimes you have to press Enter or hit Ctrl+C
Forgot MySQL root password, easy reset
About MariaDB
MariaDB is a free, open source relational database management system that was created by a fork of MySQL. The project was initiated by MySQL’s former lead developer Michael Widenius, who also developed the storage engine Aria. The structure that MariaDB originally had includes the software layer, which contains the basic functionality of the database, i.e. creating, reading, modifying, deleting data.
Addition
Alternative command to change the MySQL root password.
UPDATE USER set password=PASSWORD('NewPassword') where User='root';
FLUSH PRIVILEGES;
quit
Conclusion
This tutorial shows how to reset the forgotten or losing MySQL server root password. The steps were performed in the GNU bash on an Ubuntu 22.04.3 LTS in WSL and on a virtual Debian 12 (Bookworm) GNU/Linux running MariaDB 10.6.18 database server.
DNS resolution of /etc/resolv.conf and systemd-resolved doesn’t work after upgrade Ubuntu or Linux Mint.
How to Fix DNS resolution using systemd-resolved and /etc/resolv.conf after upgrade
Symptom: Could not resolve hostname. Name or service not known
After upgrading Ubuntu or Linux Mint querying DNS resolution fails. It seems the DNS servers which get by DHCP doesn’t work anymore.
Name resolution
resolvconf is a set of script and hooks managing DNS resolution. The most noticeable experience for the user is that any changes made manually to /etc/resolv.conf will be lost as they will be overwritten the next time resolvconf is triggered. resolvconf uses DHCP client hooks, a Netplan NetworkManager plugin and /etc/network/interfaces to generate a list of nameservers and domain to put in /etc/resolv.conf.
DNS client configuration
Traditionally, the file /etc/resolv.conf was a static configuration file that rarely needed to be changed, also it automatically changed via DHCP client hooks. systemd-resolved handles nameserver configuration, and it should be interacted with through the systemd-resolve command. Netplan configures systemd-resolved to generate a list of nameservers and domains to write in /etc/resolv.conf, which is a symlink:
Note. Ubuntu Server network interface configuration utility is ifup and it is configured by the file /etc/network/interfaces.
Ubuntu Gnome Desktop or Linux Mint Mate or Cinnamon the network interface configuration is by Netplan configure utility.
DNS Resolution /etc/resolv.conf systemd-resolved
The Netplan NetworkManager daemon attempts to make networking configuration and operation as painless and automatic as possible by managing the primary network connection and other network interfaces.
Netplan NetworkManager is also configured by Edit Connections in the graphical network connection utility. However, for network interfaces configured by DHCP it normally isn’t necessary to change any settings manually.
If you are considering to configure the DNS resolution manually, you must first change the NetworkManager.conf file.
$ sudo vi /etc/NetworkManager/NetworkManager.conf
default: NetworkManager will update /etc/resolv.conf to reflect the nameservers provided by currently active connections.
[main]
plugins=ifupdown,keyfile
# Set to default DNS processing mode.
dns=default
Add dns default key to the main section in the NetworkManager.conf file.
If the key is unspecified, default is used, unless /etc/resolv.conf is a symlink to /run/systemd/resolve/stub-resolv.conf, /run/systemd/resolve/resolv.conf, /lib/systemd/resolv.conf or /usr/lib/systemd/resolv.conf. In that case, systemd-resolved is chosen automatically.
Now restart network management daemon to apply changes.
$ sudo systemctl restart NetworkManager
After an os upgrade, the symlink may need to be recreated. Make symlink to /run/systemd/resolve/stub-resolv.conf
Note. The number of name servers is limited to 3 nameserver.
Finaly verify DNS name resolution.
$ resolvectl query ntp.pool.org
ntp.pool.org: 216.40.34.37 -- link: ens160
-- Information acquired via protocol DNS in 13.0ms.
-- Data is authenticated: no
$ resolvectl status
$ dig ns1.google.com
; <<>> DiG 9.16.48-Ubuntu <<>> ns1.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45042
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;ns1.google.com. IN A
;; ANSWER SECTION:
ns1.google.com. 18466 IN A 216.239.32.10
;; Query time: 6 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue May 28 12:53:01 CEST 2024
;; MSG SIZE rcvd: 59
what does systemd-resolved do?
systemd-resolved is a system service that provides network name resolution to local applications. It also implements a caching and validating DNS/DNSSEC stub resolver, as well as an LLMNR and MulticastDNS resolver and responder. Local applications may submit network name resolution requests via three interfaces:
systemd-resolved maintains the /run/systemd/resolve/stub-resolv.conf file for compatibility with traditional Linux programs. This file may be symlinked from /etc/resolv.conf. This file lists the 127.0.0.53 DNS stub (see above) as the only DNS server. It also contains a list of search domains that are in use by systemd-resolved. The list of search domains is always kept up-to-date. Note that /run/systemd/resolve/stub-resolv.conf should not be used directly by applications, but only through a symlink from /etc/resolv.conf.
A static file /usr/lib/systemd/resolv.conf is provided that lists the 127.0.0.53 DNS stub as only DNS server. This file may be symlinked from /etc/resolv.conf in order to connect all local clients that bypass local DNS APIs to systemd-resolved. This file also does not contain any search domains.
more help get also the man pages
$ man systemd-resolved.service
$ man NetworkManager.conf
$ man NetworkManager
$ man resolv.conf
$ man resolvectl