This tutorial has been written to help you install MySQL 8 on Debian 11 / Debian 10 / Debian 9. This guide is for a fresh installation of MySQL 8.0 on Debian 11/10/9 on a server that doesn’t have MariaDB or any other version fo MySQL running. If you have an older version of MySQL Server (e.g 5.7), you’ll need to do an in-place upgrade or dump all data, upgrade packages and re-import all database data to MySQL 8.0.
If you’re running Ubuntu server, use below guides instead:
Follow steps below to Install MySQL 8.0 on Debian 11/10/9 Linux system.
Step 1: Add MySQL Dev apt repository
MySQL 8.0 packages are available on official MySQL Dev apt repository.
sudo apt update && sudo apt -y install wget
wget https://repo.mysql.com//mysql-apt-config_0.8.22-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
Agree to configure MySQL Apt repository.
Confirm addition of MySQL 8.0 repository as default when prompted.
Then tab to <OK> and press <Enter> key to confirm version installation.
Step 2: Install MySQL 8.0 on Debian 11/10/9
Once the repository has been added, install MySQL 8.0 on Debian 11/10/9 by running the following commands:
sudo apt update
sudo apt install mysql-server
When asked for the root
password, provide the password.
Re-enter root database user password.
Select the Authentication plugin and select <OK> to finish installation of MySQL 8.0 on Debian 11/10 /9.
Check version installed using the apt-policy
command:
$ apt policy mysql-server
mysql-server:
Installed: (none)
Candidate: 8.0.29-1debian11
Version table:
8.0.29-1debian11 500
500 http://repo.mysql.com/apt/debian bullseye/mysql-8.0 amd64 Packages
The mysql service should be started by default, you can confirm service status using the command:
$ systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-08-22 00:29:53 UTC; 43s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 26431 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 26590 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 2340)
Memory: 358.2M
CPU: 1.831s
CGroup: /system.slice/mysql.service
└─26590 /usr/sbin/mysqld
Aug 22 00:29:43 debian-bullseye-01 systemd[1]: Starting MySQL Community Server...
Aug 22 00:29:43 debian-bullseye-01 su[26466]: (to mysql) root on none
Aug 22 00:29:43 debian-bullseye-01 su[26466]: pam_unix(su-l:session): session opened for user mysql(uid=108) by (uid=0)
Aug 22 00:29:53 debian-bullseye-01 systemd[1]: Started MySQL Community Server.
Step 3: Test MySQL 8.0 Installation on Debian 11/10/9
Let’s test to confirm if MySQL 8.0 installed on Debian 11/10 /9 is working as expected.
Login as root user with a created password:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.26 |
+-----------+
1 row in set (0.00 sec)
Create a Test database and user.
CREATE USER 'test_user'@'localhost' IDENTIFIED BY "Jek1oleiboafei4eeghu";
CREATE DATABASE test_db;
GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost';
FLUSH PRIVILEGES;
QUIT
Try to access the database console as test_user:
$ mysql -u test_user -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test_db |
+--------------------+
2 rows in set (0.01 sec)
mysql> QUIT
Once confirmed to be able to login and use assigned database, login again as root user and drop both the test database and user.
mysql> DROP DATABASE test_db;
Query OK, 0 rows affected (0.11 sec)
mysql> DROP USER 'test_user'@'localhost';
Query OK, 0 rows affected (0.11 sec)
mysql> SELECT USER FROM mysql.user;
+------------------+
| USER |
+------------------+
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| root |
+------------------+
4 rows in set (0.00 sec)
mysql> QUIT
Bye
Install Desktop Database Management Tool
If working with MySQL command line is not your thing, then consider installing a Database Tool to help you. Check out our guide below:
Install and Configure DBeaver on Fedora & CentOS
MySQL 8.0 has been confirmed to be installed and working on Debian 11 / Debian 10 / Debian 9 Linux. Thank you for using our guide and stay connected for more articles related to Database Administration.
Best Udemy Video Courses to Learn MySQL / MariaDB Databases:
- The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert
- SQL – MySQL for Data Analytics and Business Intelligence
- MySQL, SQL and Stored Procedures from Beginner to Advanced
- SQL for Beginners: Learn SQL using MySQL and Database Design
- The Complete MySQL Developer Course
- MySQL Database Administration: Beginner SQL Database Design
- Learn Database Design with MySQL