MySQL, sistem manajemen basis data relasional open source paling populer di dunia dan tidak tersedia di repositori default Debian. MariaDB adalah sistem database default di Debian 10.

Tutorial ini, menjelaskan cara menginstal dan mengamankan MySQL pada Debian 10 dari MySQL Apt Repository.

Konfigurasi Repository MySQL

Untuk menambahkan repositori MySQL APT ke sistem Anda, buka halaman download repositori dan unduh paket rilis terbaru menggunakan perintah wget berikut:

wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb

Setelah unduhan selesai instal paket rilis dengan perintah berikut dengan perintah sudo:

sudo apt install ./mysql-apt-config_0.8.13-1_all.deb

Anda akan disajikan dengan menu konfigurasi tempat Anda dapat memilih versi MySQL yang ingin Anda instal.

debian select mysql version

MySQL 8.0 sudah dipilih sebelumnya, jika Anda ingin menginstal versi lain dari MySQL, pilih MySQL Server & Cluster (Currently selected: mysql-8.0) dan pilih versi MySQL pilihan Anda

Kita akan menginstal MySQL versi 8.0. Pilih opsi terakhir OK dan tekan Enter (seperti yang ditunjukkan pada gambar di atas) untuk menyimpan konfigurasi.

Pada saat menulis artikel ini, versi terbaru MySQL adalah versi 8.0. Jika Anda tidak yakin versi mana yang harus dipilih, bacalah dokumentasi aplikasi yang akan Anda deploy di server Anda.

Install MySQL di Debian 10

Sebelum menginstal MySQL di server Debian 10 Anda, perbarui daftar paket terlebih dahulu dan install mysql-server dengan perintah :

sudo apt update
sudo apt install mysql-server

Installer akan meminta Anda untuk mengatur kata sandi root MySQL. Jangan set kata sandi sekarang (biarkan kosong), kita akan melakukannya di bagian selanjutnya.

Selanjutnya, Anda akan disajikan pesan yang memberi tahu Anda tentang otentikasi MySQL 8 yang baru. Sebelum memilih plugin otentikasi MySQL 8 default, pastikan plugin tersebut didukung oleh aplikasi Anda.

Setelah instalasi komplit, Layanan MySQL akan mulai secara otomatis, Anda dapat memeriksanya dengan perintah berikut :

sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en
   Active: active (running) since Fri 2019-07-26 13:23:25 PDT; 37s ago
   ...

Mengamankan MySQL

Jalankan perintah mysql_secure_installation untuk mengatur kata sandi root dan untuk meningkatkan keamanan instalasi MySQL:

sudo mysql_secure_installation
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT 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 component?

Press y|Y for Yes, any other key for No:

Anda akan diminta untuk mengkonfigurasi VALIDATE PASSWORD PLUGIN yang digunakan untuk menguji kekuatan kata sandi user MySQL.

Ada tiga tingkat kebijakan validasi kata, mulai dari kata sandi low (rendah), medium (sedang) dan strong (kuat). Tekan ENTER jika Anda tidak ingin mengatur plugin validasi kata sandi yang valid.

Please set the password for root here.

New password:

Re-enter new password:

Pada prompt berikutnya, Anda akan diminta untuk mengatur kata sandi untuk pengguna root MySQL.

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!

Setelah Anda mengatur kata sandi root, skrip juga akan meminta Anda untuk menghapus pengguna anonymous, membatasi akses pengguna root ke mesin lokal dan menghapus database pengujian. Anda harus menjawab “Y” (yes) untuk semua pertanyaan.

Cara Terhubung ke MySQL Server

Untuk berinteraksi dengan MySQL melalui terminal, kita akan menggunakan MySQL client yang diinstal sebagai dependensi dari paket MySQL server .

Jika Anda memilih metode otentikasi default untuk masuk ke server MySQL sebagai user root:

sudo mysql

Jika tidak, jika Anda memilih metode otentikasi dengan menggunakan kata sandi untuk masuk dengan mengetik ketik:

mysql -u root -p

Anda akan diminta memasukkan kata sandi root yang sebelumnya Anda atur saat skrip mysql_secure_installations dijalankan.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.17 MySQL Community Server - GPL
...

Kesimpulan

Dalam tutorial ini, kita telah belajar cara menginstal dan mengamankan server MySQL server di Debian 10. Kami juga telah menunjukkan kepada Anda cara menyambung ke shell MySQL dan cara membuat database dan tabel baru.

Jika aplikasi Anda tidak memiliki persyaratan khusus, Anda dapat tetap menggunakan MariaDB, sistem database default di Debian 10. Untuk lebih mendalami bagaimana mengelola database MySQL, Anda mungkin ingin memeriksa panduan berikut: