MySQL database is open-source software which can be used for many purposes. In this tutorial I will show you How to install MySQL database on Ubuntu 18.04, 20.04 or 22.04? WordPress as default use MySQL under the hood for storing all blog information for example. MySQL is a component of the LAMP web application software stack (Linux, Apache, MySQL, Perl/PHP/Python). (How to install MySQL database on Ubuntu 18.04?)
Table of Contents
MySQL is a free and open-source relational database management system (RDBMS) that is widely used for storing and managing data on the web. It is known for its high performance, reliability, and ease of use, and is used by many small and large organizations around the world.
MySQL is built on a client-server model, with the MySQL server managing the database and the MySQL client software providing access to the database from other programs. MySQL supports a wide range of programming languages and can be used in a variety of applications, including web applications, data warehouses, and other types of database-driven systems.
To use MySQL, you will need to install the MySQL server and client software on your computer. Once MySQL is installed, you can create and manage databases and tables using SQL commands, either from the command line or through a graphical interface such as MySQL Workbench. You can also use one of the many programming languages that support MySQL, such as Python, PHP, or Java, to access and manipulate data in the database.
MySQL is a popular choice for database management, and is often used in conjunction with web applications, data analytics, and other types of systems that require a database. It is well-documented and supported by a large and active community of users and developers.
How to install MySQL database on Ubuntu 18.04, 20.04 or 22.04?
First of all we have to update packages. As the next step we will install mysql-server package and finally configure our MySQL database instance. In this tutorial we will install MySQL database in version 5.7. (How to install MySQL database on Ubuntu 18.04?)
# 1. Update packages sudo apt update sudo apt upgrade # 2. Install MySQL Server sudo apt install mysql-server # 3. Configure MySQL database instance sudo mysql_secure_installation
When you run the MySQL secure-installation you will follow step by step to configure security of our MySQL database instance. One of the most important step (in my opinion) is to disallow root user to login remotely. If you will disallow it, you will be able to login to MySQL only from local machine when the database was installed. It will give you two levels of authentication. Firstly, you must be logged in remote machine and next you can login to MySQL database. (How to install MySQL database on Ubuntu 18.04?)
pawel@test:~$ sudo mysql_secure_installation Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: y There are three levels of password validation policy: LOW Length = 8 MEDIUM Length = 8, numeric, mixed case, and special characters STRONG Length = 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
Change Authentication Method
The next important step is to change the authentication method. As default is “auth_socket”. Our target is to change it to: “mysql_native_password”. To change it please: (How to install MySQL database on Ubuntu 18.04?)
- login to MySQL database.
- Check current authentication methods for each user.
- Set new passwordfor root.
- Flush privileges.
- Verify new status of authentication methods.
# Login into MySQL database sudo mysql
-- Check current authentication methods for each user. mysql> SELECT user, plugin FROM mysql.user; +------------------+-----------------------+ | user | plugin | +------------------+-----------------------+ | root | auth_socket | | mysql.session | mysql_native_password | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password | +------------------+-----------------------+ 4 rows in set (0.01 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_strong_password';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user, plugin FROM mysql.user; +------------------+-----------------------+ | user | plugin | +------------------+-----------------------+ | root | mysql_native_password | | mysql.session | mysql_native_password | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password | +------------------+-----------------------+ 4 rows in set (0.01 sec)
Let’s logout from MySQL:
Login Using Password
To test our new password, we have to login to MySQL using the syntax like below. After -u we put the username. The -p parameter gives us prompt for password. (How to install MySQL database on Ubuntu 18.04?)
pawel@test:~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
systemctl status mysql.service
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-01-26 16:45:43 UTC; 14min ago Process: 4202 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS) Process: 4179 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 4204 (mysqld) Tasks: 28 (limit: 4708) CGroup: /system.slice/mysql.service └─4204 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid Jan 26 16:45:42 test systemd: Starting MySQL Community Server... Jan 26 16:45:43 test systemd: Started MySQL Community Server.
In case when service is not running please run it using this command:
sudo systemctl start mysql
Keep in mind that these steps assume that you are using a recent version of Ubuntu that uses the systemctl command to manage services. If you are using an older version of Ubuntu that uses the init.d service management scripts, you may need to use different commands to start and enable the MySQL service.
Could You Please Share This Post? I appreciate It And Thank YOU! :) Have A Nice Day!
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?