MySQL adalah sistem pengelolaan basis data relasional open-source yang paling populer. Terkenal akan kecepatan, penggunaan yang mudah, mudah untuk ditambah / dikurangi, dan merupakan bagian integral dari LAMP dan LEMP stacks yang populer.

Panduan ini menjelaskan cara menginstal dan mengamankan MySQL di Ubuntu 20.04.

Prasyarat

Pastikan Anda masuk sebagai user dengan hak istimewa sudo.

Install MySQL di Ubuntu

Saat artikel ini ditulis, versi terbaru MySQL yang tersedia di repositori Ubuntu adalah MySQL versi 8.0. Untuk menginstalnya jalankan perintah berikut:

sudo apt update
sudo apt install mysql-server

Setelah instalasi selesai, layanan MySQL akan dimulai secara otomatis. Untuk memverifikasi bahwa server MySQL berjalan, ketik:

sudo systemctl status mysql

Output akan menunjukkan bahwa layanan MySQL telah diaktifkan dan berjalan:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago
   Main PID: 8617 (mysqld)
     Status: "Server is operational"
     ...

Mengamankan MySQL

Pada saat proses Instalasi, MySQL dilengkapi dengan skrip bernama mysql_secure_installation yang memungkinkan Anda meningkatkan keamanan server database dengan mudah.

Aktifkan skrip berikut ini di terminal:

sudo mysql_secure_installation

Anda akan diminta untuk mengonfigurasi VALIDATE PASSWORD PLUGIN yang digunakan untuk menguji kekuatan sandi pengguna MySQL dan meningkatkan keamanan:

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: y

Ada tiga tingkat kebijakan validasi kata sandi, low, medium, dan strong. ketik y jika Anda ingin menyiapkan plugin kata sandi validasi atau kunci lainnya untuk melanjutkan ke langkah berikutnya:

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: 2

Pada prompt berikutnya, Anda akan diminta untuk menyetel kata sandi untuk akun root MySQL:

Please set the password for root here.


New password: 

Re-enter new password:

Jika Anda menyiapkan plugin validasi kata sandi, skrip akan menunjukkan kepada Anda kekuatan kata sandi baru Anda. Ketik y untuk mengonfirmasi kata sandi:

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Selanjutnya, Anda akan diminta untuk menghapus pengguna anonim, membatasi akses pengguna root ke mesin lokal, menghapus database pengujian, dan memuat ulang tabel hak istimewa. Demi alasan keamanan, Anda harus menjawab y untuk semua pertanyaan.

Login sebagai root

Untuk berinteraksi dengan server MySQL dari baris perintah, gunakan utilitas MySQL MySQL client yang diinstal sebagai dependensi dari paket server MySQL.

Di MySQL 8.0, akun root diautentikasi oleh plugin auth_socket secara default.

Plugin auth_socket mengotentikasi pengguna yang terhubung dari localhost melalui file soket Unix. Ini berarti Anda tidak dapat mengautentikasi sebagai root dengan memberikan kata sandi.

Untuk masuk ke server MySQL sebagai pengguna root ketik:

sudo mysql

Anda akan disajikan dengan shell MySQL, seperti yang ditunjukkan di bawah ini:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.19-0ubuntu5 (Ubuntu)

Copyright (c) 2000, 2020, 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>

Jika Anda ingin login ke server MySQL Anda sebagai root menggunakan program eksternal seperti phpMyAdmin, Anda memiliki dua pilihan.

Yang pertama adalah mengubah metode autentikasi dari auth_socket ke mysql_native_password. Anda dapat melakukannya dengan menjalankan perintah berikut:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Ganti_Dengan_Password_Anda';
FLUSH PRIVILEGES;

Opsi kedua yang disarankan adalah membuat pengguna baru dengan akses ke semua database:

GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'Ganti_Dengan_Password_Anda';

Kesimpulan

Kami telah menunjukkan kepada Anda cara install MySQL di Ubuntu 20.04. Setelah server database Anda aktif dan berjalan, langkah selanjutnya adalah mempelajari cara mengelola akun dan database pengguna MySQL.