How To Install Mysql In Linux

How To Install Mysql In Linux

Reading time1 min
#Database#Linux#MySQL#MySQLInstallation#LinuxAdmin#DatabaseSecurity

Mastering MySQL Installation on Linux: A Step-by-Step Guide for Reliable Database Setup

Getting MySQL installed correctly on a Linux server is foundational for any developer or sysadmin aiming for stable, performant database management. Missteps in installation can lead to security vulnerabilities and performance bottlenecks down the line. Forget copy-paste commands from random forums—this guide breaks down the installation process with no assumptions about your Linux flavor or environment, ensuring a tailored and foolproof setup every time.


Why Installing MySQL Properly Matters

MySQL is one of the most popular relational database management systems worldwide. Whether you're building a web application, managing data analytics, or setting up a secure backend, your MySQL installation is the bedrock on which everything else depends.

  • Security: Incorrect setup can leave default users or weak passwords exposed.
  • Performance: Out-of-the-box defaults may not suit your workload or hardware.
  • Stability: Proper installation avoids conflicts with existing packages or services.

So let’s get this installation right from the ground up.


Step 1: Identify Your Linux Distribution

Linux comes in many flavors, and the package management system differs between them:

  • Debian / Ubuntu familyapt
  • CentOS / RHEL / Fedorayum or dnf
  • OpenSUSEzypper

Knowing this will help tailor commands correctly.


Step 2: Update Your System

Before installing anything, update your package lists and upgrade existing packages to avoid dependency issues.

On Debian/Ubuntu:

sudo apt update && sudo apt upgrade -y

On CentOS/RHEL/Fedora:

sudo yum update -y

or on newer Fedora:

sudo dnf update -y

On OpenSUSE:

sudo zypper refresh && sudo zypper update

Step 3: Installing MySQL Server

For Debian/Ubuntu

By default, Debian-based distros come with MySQL or MariaDB (a drop-in replacement) in their repositories. But to ensure you get the latest official MySQL release, add the official MySQL APT repository.

  1. Download MySQL APT repository package
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb

(Version numbers might change; always check the official MySQL site.)

  1. Install the repo package
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb

You’ll be prompted to choose the MySQL version. Choose the latest GA release (usually 8.0+).

  1. Update package info
sudo apt update
  1. Install MySQL Server
sudo apt install mysql-server
  1. Verify installation
mysql --version

You should see something like:

mysql  Ver 8.0.xxx for Linux on x86_64 (MySQL Community Server - GPL)

For CentOS/RHEL

  1. Add MySQL Yum repository
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  1. Enable MySQL module
sudo yum-config-manager --disable mysql57-community
sudo yum-config-manager --enable mysql80-community
  1. Install MySQL Server
sudo yum install mysql-community-server
  1. Start and enable MySQL service
sudo systemctl start mysqld
sudo systemctl enable mysqld
  1. Check MySQL version
mysql --version

For Fedora

Use dnf following CentOS/RHEL-like steps or install from the default Fedora repos:

sudo dnf install community-mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld

Step 4: Secure MySQL Installation

MySQL comes with a script to help harden your setup by setting a root password, removing anonymous users, disallowing remote root login, and removing test databases.

Run:

sudo mysql_secure_installation

You’ll be asked a series of questions. Recommended responses:

  • Set a strong root password
  • Remove anonymous users
  • Disallow root login remotely
  • Remove test database
  • Reload privilege tables (Yes)

Step 5: Login and Create Your First Database

Now that your MySQL server is installed and secured, let’s verify everything works.

mysql -u root -p

Enter the root password you set earlier.

Create a test database and user:

CREATE DATABASE blog_db;
CREATE USER 'blog_user'@'localhost' IDENTIFIED BY 'SecurePass123!';
GRANT ALL PRIVILEGES ON blog_db.* TO 'blog_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

You’ve now created a separate database and user, following best practices by avoiding the use of root for application access.


Step 6: Enable MySQL to Start at Boot

Ensure your MySQL server starts automatically when your system reboots:

sudo systemctl enable mysqld  # CentOS/RHEL/Fedora

# or

sudo systemctl enable mysql   # Debian/Ubuntu

You can also check status using:

sudo systemctl status mysqld

or

sudo systemctl status mysql

Bonus Tips for a Robust MySQL Installation

  • Configure Firewall: If you need remote access, allow port 3306 through your firewall but restrict IP addresses for safety.
sudo ufw allow from 192.168.1.10 to any port 3306   # Example for Ubuntu
  • Performance Tuning: Edit /etc/mysql/my.cnf or /etc/my.cnf based on your server resources.
  • Backups: Set up regular backups using mysqldump or tools like Percona Xtrabackup.

Wrapping Up

Mastering MySQL installation on Linux is not just about running a few commands. It’s about understanding the distro differences, securing your server, and setting up best practices from the outset. This methodical approach ensures your databases run reliably and securely, empowering your applications to perform at their best.

Whether you’re deploying a personal project or managing a production environment, this guide has got you covered — no guesswork or sketchy copy-paste snippets needed!


If you found this guide useful, share it to help other developers and sysadmins install MySQL flawlessly on their Linux servers! Have questions or tips of your own? Drop them in the comments below.