Cara Menginstal MariaDB di Ubuntu (20.04 / 22.04 / 24.04) – Panduan Lengkap Penyiapan & Keamanan

目次

Cara Tercepat untuk Menginstal MariaDB di Ubuntu (20.04 / 22.04 / 24.04 Didukung)

Jika Anda ingin mulai menggunakan MariaDB di Ubuntu segera, cukup ikuti langkah-langkah di bawah ini untuk menyelesaikan instalasi dan verifikasi startup. Kecuali Anda memiliki alasan khusus, menginstal dari repositori default Ubuntu adalah opsi yang paling aman dan stabil.

① Perbarui Informasi Paket

sudo apt update
sudo apt upgrade -y

② Instal MariaDB

sudo apt install -y mariadb-server mariadb-client

Tidak ada konfigurasi khusus yang diperlukan selama instalasi. Setelah selesai, layanan MariaDB akan mulai secara otomatis.

③ Verifikasi MariaDB Berjalan

sudo systemctl status mariadb

Jika active (running) ditampilkan, MariaDB berjalan dengan baik.

④ Aktifkan Auto-Start (Biasanya Tidak Diperlukan tetapi Disarankan untuk Dikonfirmasi)

sudo systemctl enable mariadb

⑤ Sambungkan ke MariaDB dan Verifikasi Operasi

sudo mysql

Jika Anda melihat prompt berikut, instalasi berhasil:

MariaDB [(none)]>

Untuk keluar, ketik exit;.

Inisialisasi Keamanan Wajib Setelah Instalasi

Segera setelah instalasi, MariaDB hanya memiliki pengaturan keamanan minimal yang diterapkan. Pastikan untuk menjalankan perintah berikut:

sudo mysql_secure_installation

Secara umum, jawaban berikut direkomendasikan:

  • Hapus pengguna anonim → Y
  • Larang login root dari jarak jauh → Y
  • Hapus basis data test → Y
  • Muat ulang tabel hak istimewa → Y

Ini menyelesaikan penyiapan lingkungan MariaDB yang aman di Ubuntu.

Versi MariaDB yang Diinstal oleh Versi Ubuntu

  • Ubuntu 20.04 → MariaDB seri 10.3
  • Ubuntu 22.04 → MariaDB seri 10.6
  • Ubuntu 24.04 → MariaDB seri 10.11 (LTS)

Bagi kebanyakan pengguna, versi default Ubuntu sudah cukup. Hanya pertimbangkan repositori resmi jika Anda membutuhkan fitur terbaru.

Pemeriksaan Cepat Jika Instalasi Gagal atau Layanan Tidak Mulai

  • Periksa error dengan sudo systemctl status mariadb
  • Periksa log detail dengan sudo journalctl -xe
  • Periksa ruang disk dengan df -h

Dalam kebanyakan kasus, masalahnya adalah ruang disk yang tidak cukup atau typo pada file konfigurasi.

Memilih Versi MariaDB yang Tepat untuk Versi Ubuntu Anda

Saat menggunakan MariaDB di Ubuntu, opsi paling aman dalam kebanyakan kasus adalah versi repositori default. Pembaruan keamanan dan kompatibilitas dependensi dipelihara secara otomatis, menjadikannya ideal untuk pemula dan pengguna menengah.

Versi Repositori Default Ubuntu (Disarankan)

  • Ubuntu 20.04 → MariaDB seri 10.3
  • Ubuntu 22.04 → MariaDB seri 10.6
  • Ubuntu 24.04 → MariaDB seri 10.11 (LTS)

Kecuali Anda memiliki kebutuhan khusus, versi ini sepenuhnya praktis untuk penggunaan produksi.

Jika Anda Membutuhkan Versi Terbaru (Tambahkan Repositori Resmi MariaDB)

Jika Anda membutuhkan fitur terbaru, Anda dapat menambahkan repositori resmi MariaDB. Karena apt-key sudah tidak direkomendasikan, ini menggunakan metode signed-by.

① Simpan Kunci GPG

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
  | sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg

② Periksa Nama Kode Ubuntu Anda

lsb_release -cs

Contoh:

  • 20.04 → focal
  • 22.04 → jammy
  • 24.04 → noble

③ Tambahkan Repositori Resmi (Contoh: Seri 10.11)

echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list

④ Perbarui Paket dan Instal

sudo apt update
sudo apt install mariadb-server mariadb-client

Catatan Saat Menggunakan Repositori Resmi

  • Anda dapat menggunakan fitur yang lebih baru dibandingkan versi default Ubuntu
  • Ada risiko konflik dependensi di masa depan
  • Pengujian menyeluruh diperlukan untuk server produksi

Untuk produksi, tentukan dengan jelas apakah Anda mengutamakan stabilitas atau fitur terbaru.

Cara Memeriksa Versi MariaDB yang Saat Ini Terinstal

mysql --version

Contoh:

mysql  Ver 15.1 Distrib 10.6.16-MariaDB

Dengan secara eksplisit mengonfirmasi versi, pekerjaan pemecahan masalah dan migrasi menjadi jauh lebih mudah.

Panduan Lengkap Penyiapan Keamanan Awal MariaDB (mysql_secure_installation)

Segera setelah menginstal MariaDB, hanya pengaturan keamanan minimal yang diterapkan. Untuk beroperasi dengan aman, pastikan menjalankan perintah berikut:

sudo mysql_secure_installation

Saat dijalankan, beberapa prompt akan muncul. Dalam kebanyakan kasus, jawaban berikut direkomendasikan.

Jawaban yang Direkomendasikan

  • Masukkan password saat ini untuk root: → Tekan Enter (tidak diatur pada run pertama)
  • Beralih ke autentikasi unix_socket? → Y (Direkomendasikan pada Ubuntu)
  • Ubah password root? → N (Jika menggunakan autentikasi unix_socket)
  • Hapus pengguna anonim? → Y
  • Larang login root dari jarak jauh? → Y
  • Hapus basis data test dan akses ke dalamnya? → Y
  • Muat ulang tabel hak istimewa sekarang? → Y

Ini menyelesaikan konfigurasi keamanan dasar.

Mengapa Anda Tidak Dapat Masuk sebagai root (Kesalahan Access Denied)

Pada Ubuntu, pengguna root menggunakan autentikasi unix_socket secara default. Oleh karena itu, login berbasis password standar tidak akan berfungsi.

Contoh Gejala

mysql -u root -p

Access denied for user 'root'@'localhost'

Metode Login yang Benar (Default Ubuntu)

sudo mysql

Ini adalah metode yang paling aman dan direkomendasikan.

Cara Mengubah root ke Autentikasi Password (Hanya Jika Diperlukan)

Ubah metode autentikasi hanya jika Anda harus terhubung sebagai root dari alat atau aplikasi eksternal.

① Hubungkan ke MariaDB

sudo mysql

② Ubah Plugin Autentikasi

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';

FLUSH PRIVILEGES;

③ Konfirmasi Perubahan

SELECT user, host, plugin FROM mysql.user;

Jika mysql_native_password ditampilkan, perubahan berhasil.

Cara Memeriksa Metode Autentikasi Saat Ini

sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"

Metode autentikasi utama:

  • unix_socket → Default Ubuntu, aman
  • mysql_native_password → Autentikasi berbasis password

Kecuali ada alasan khusus, yang paling aman adalah tetap menggunakan autentikasi unix_socket untuk root.

Kesalahan Umum dan Solusinya

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

  • Penyebab: Mencoba login berbasis password
  • Solusi: Masuk menggunakan sudo mysql

mysql_secure_installation Tidak Ditemukan

  • Periksa dengan which mysql_secure_installation
  • Jika tidak terinstal, jalankan sudo apt install mariadb-server

Atur Pengkodean Karakter ke utf8mb4 (Cegah Teks Rusak)

Untuk menangani teks multibahasa dan emoji dengan aman di MariaDB, disarankan menggunakan utf8mb4. Tanpa pengaturan ini, Anda mungkin mengalami masalah pengkodean atau kehilangan data.

① Edit File Konfigurasi

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Tambahkan atau ubah baris berikut di bagian [mysqld]:

[mysqld]
character-set-server = utf8mb4
collation-server     = utf8mb4_general_ci

② Restart MariaDB

sudo systemctl restart mariadb

③ Verifikasi Pengaturan

sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"

Jika utf8mb4 ditampilkan, konfigurasi berhasil.

Tentukan utf8mb4 Saat Membuat Basis Data (Direkomendasikan)

Jika Anda ingin secara eksplisit menentukan set karakter terlepas dari pengaturan global, tentukan saat pembuatan basis data.

CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

Semua tabel yang dibuat dalam basis data ini akan mewarisi utf8mb4.

Buat Pengguna Aplikasi dan Berikan Izin

Di lingkungan produksi, jangan pernah menggunakan pengguna root untuk koneksi aplikasi. Buat pengguna khusus dan berikan hanya hak istimewa minimum yang diperlukan.

.

① Masuk ke MariaDB

sudo mysql

② Buat Pengguna (Koneksi Lokal)

CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';

③ Berikan Hak Istimewa Database

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';

FLUSH PRIVILEGES;

Buat Pengguna Akses Jarak Jauh (Hanya Jika Diperlukan)

Konfigurasikan ini hanya jika Anda perlu terhubung dari server eksternal atau lingkungan cloud.

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Catatan: Wildcard “%” memungkinkan koneksi dari host mana saja. Pada lingkungan produksi, menentukan alamat IP tertentu lebih aman.

Cara Memeriksa Pengguna dan Hak Istimewa Saat Ini

SELECT user, host FROM mysql.user;

SHOW GRANTS FOR 'app_user'@'localhost';

Kesalahan Izin Umum dan Solusinya

Akses ditolak untuk pengguna ‘app_user’

  • Spesifikasi host yang salah (perbedaan antara localhost dan %)
  • FLUSH PRIVILEGES belum dijalankan
  • Nama database yang salah saat koneksi

Database tidak dikenal

  • Typo nama database
  • Tidak ada hak istimewa yang diberikan untuk database target

Cara Mengizinkan Koneksi Jarak Jauh di MariaDB (Perbaikan Saat Akses Eksternal Gagal)

Secara default, MariaDB hanya mengizinkan koneksi lokal. Jika Anda perlu terhubung dari server eksternal atau lingkungan cloud, konfigurasikan pengaturan berikut.

① Ubah bind-address

Edit file konfigurasi:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Temukan baris berikut:

bind-address = 127.0.0.1

Untuk mengizinkan koneksi eksternal, ubah menjadi:

bind-address = 0.0.0.0

Setelah menyimpan, restart MariaDB:

sudo systemctl restart mariadb

② Buka Port 3306 di Firewall

Jika Anda menggunakan UFW di Ubuntu:

sudo ufw allow 3306
sudo ufw reload

Untuk keamanan yang lebih baik, tentukan alamat IP sumber:

sudo ufw allow from 192.168.1.10 to any port 3306

③ Buat Pengguna Akses Jarak Jauh

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Untuk keamanan yang lebih baik:

CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';

Daftar Periksa Jika Anda Tidak Dapat Terhubung Secara Eksternal

1. Apakah MariaDB Berjalan?

sudo systemctl status mariadb

2. Apakah Port 3306 Mendengarkan?

sudo ss -tulnp | grep 3306

Jika menampilkan 0.0.0.0:3306, maka sudah mendengarkan pada semua antarmuka.

3. Jika Menggunakan Lingkungan Cloud (AWS / GCP / VPS)

  • Pastikan port 3306 terbuka di grup keamanan
  • Pastikan tidak ada firewall eksternal yang memblokir koneksi

4. Penyebab Berdasarkan Pesan Kesalahan

Tidak dapat terhubung ke server MySQL

  • Port tertutup
  • bind-address tidak diubah
  • Firewall memblokir koneksi

Akses ditolak untuk pengguna

  • Spesifikasi host pengguna yang salah
  • Kata sandi salah
  • Hak istimewa tidak diberikan

Koneksi habis waktu

  • Pengaturan keamanan sisi cloud
  • Masalah routing jaringan

Catatan Keamanan Penting

  • Hindari menggunakan “%” di lingkungan produksi
  • Gunakan akses VPN bila memungkinkan
  • Pertimbangkan mengaktifkan koneksi SSL/TLS
  • Jangan pernah mengizinkan login root dari jarak jauh

Pemecahan Masalah Saat MariaDB Gagal Memulai (Error Gagal)

① Periksa Status Layanan

sudo systemctl status mariadb

② Periksa Log Detail

sudo journalctl -xe
sudo cat /var/log/mysql/error.log

③ Penyebab Umum

  • Kesalahan sintaks file konfigurasi
  • Ruang disk tidak cukup
  • Konflik port (MySQL sudah berjalan)

④ Periksa Ruang Disk

df -h

Ringkasan Penyebab Kesalahan Akses Ditolak

  • Kata sandi salah
  • Spesifikasi host yang salah (perbedaan antara localhost dan %)
  • FLUSH PRIVILEGES tidak dijalankan
  • Mencoba login standar untuk root (memerlukan sudo mysql )

Peningkatan Kinerja Dasar (Untuk Pemula)

Advanced tuning is not required, but at minimum, confirm the following settings.

① Enable Slow Query Log

Add the following to 50-server.cnf:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

Restart MariaDB:

sudo systemctl restart mariadb

② Check Index Usage

Slow queries may be missing proper indexes.

EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';

③ Check Server Resources

top
htop

If memory is insufficient, consider upgrading your server plan.

Frequently Asked Questions (FAQ)

How can I lock the MariaDB version on Ubuntu 22.04?

Use apt-mark hold mariadb-server.

How do I reset the root password if I forgot it?

You can reset it by starting in safe mode and reconfiguring the password. See our dedicated guide for detailed steps.

How do I change the MariaDB port number?

Modify 50-server.cnf to something like port = 3307, then restart the service.

Conclusion: Using MariaDB Safely on Ubuntu

  • Using the default repository version is the safest option
  • Always run mysql_secure_installation
  • Never use root for application connections
  • Enable remote access only when necessary
  • When troubleshooting, checking logs is the top priority

By following these steps, you can build a secure and production-ready MariaDB environment on Ubuntu.