Cara Install MariaDB di Ubuntu 24.04
Cara install MariaDB di Ubuntu 24.04 dengan menggunakan package mariadb-server dari repository Ubuntu. Pendekatan ini cocok untuk server baru karena paketnya stabil, service langsung terintegrasi dengan systemd, dan konfigurasi awalnya mudah diaudit. Setelah instalasi selesai, Anda masih perlu konfigurasi autentikasi root, akses user, dan verifikasi query agar database siap dipakai.
Requirementsโ
Sebelum mulai, siapkan kebutuhan berikut:
- Server dengan Ubuntu 24.04 LTS.
- Akses
sudoatau root. - Koneksi internet untuk mengambil package dari repository Ubuntu.
- RAM minimal 2 GB jika database dipakai oleh aplikasi produksi kecil atau menengah.
- Port
3306tidak perlu dibuka ke internet jika aplikasi berjalan di server yang sama.
Environmentโ
- Sistem operasi: Ubuntu 24.04 LTS (Noble Numbat)
- Database server: MariaDB 10.11 LTS dari repository bawaan Ubuntu 24.04
- Service manager:
systemd - Shell:
bash
Panduan ini menggunakan Nusa Cloud VPS sebagai untuk pengujian. Langkah yang sama tetap berlaku untuk server Ubuntu 24.04 lain selama memakai repository default Ubuntu.
Cara Install MariaDBโ
Repository default Ubuntu 24.04 sudah menyediakan MariaDB dengan patch keamanan. Untuk sebagian besar server aplikasi, paket bawaan ini lebih praktis daripada menambah repository baru karena update tetap mengikuti alur apt standar.
-
Perbarui indeks package:
sudo apt update -
Install package server dan client MariaDB:
sudo apt install -y mariadb-server mariadb-client -
Pastikan service aktif dan otomatis berjalan saat boot:
sudo systemctl enable --now mariadb -
Cek status singkat service:
sudo systemctl is-active mariadbOutput yang diharapkan:
active
Verifikasi Instalasi MariaDBโ
Verifikasi awal penting supaya Anda tahu package terpasang dari repository yang benar, service aktif, dan port database hanya mendengar koneksi yang memang dibutuhkan.
-
Cek versi MariaDB client:
mariadb --versionOutput umumnya terlihat seperti berikut:
mariadb Ver 15.1 Distrib 10.11.x-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper -
Cek port listening MariaDB:
sudo ss -tlnp | grep 3306Output default biasanya menunjukkan MariaDB hanya listen di
127.0.0.1:3306.
Cara Mengamankan MariaDBโ
Instalasi default MariaDB sudah cukup aman untuk akses lokal, tetapi masih perlu hardening awal. Pada Ubuntu 24.04, akun root MariaDB untuk akses lokal biasanya tetap bisa diakses melalui sudo mariadb. Pada build Ubuntu, informasi autentikasi root juga disimpan di mysql.global_priv, sehingga hasil pada view mysql.user tidak selalu cukup untuk menjelaskan semua metode login yang diizinkan.
Jalankan hardening awal berikut:
sudo mariadb <<'SQL'
DELETE FROM mysql.global_priv WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
SQL
Lalu verifikasi definisi login root dan pastikan user anonim sudah tidak ada:
sudo mariadb -e "SHOW CREATE USER root@localhost;"
sudo mariadb -e "SELECT user, host FROM mysql.user WHERE user='';"
Jika output SHOW CREATE USER menampilkan unix_socket sebagai salah satu metode autentikasi, berarti akses root lokal lewat sudo mariadb tetap tersedia. Jika query kedua tidak menampilkan baris apa pun, berarti user anonim sudah terhapus. Untuk administrasi lokal, gunakan sudo mariadb supaya akses root tetap lewat user root sistem dan tidak bergantung pada password yang tersimpan di shell history.
Konfigurasi Dasar MariaDBโ
Setelah instalasi aman, lanjutkan dengan dua hal yang paling sering dibutuhkan pada server aplikasi: memastikan karakter bawaan konsisten, lalu membuat database dan user khusus aplikasi. Hindari memakai user root untuk koneksi dari aplikasi karena ruang dampaknya terlalu besar bila kredensial bocor.
Buat Konfigurasi MariaDB Dasarโ
Buat file override baru agar perubahan tidak bercampur dengan file bawaan package:
sudo tee /etc/mysql/mariadb.conf.d/60-custom-server.cnf > /dev/null << 'EOF'
[mariadb]
bind-address = 127.0.0.1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake = 1
EOF
Konfigurasi di atas menjaga MariaDB tetap listen lokal, sekaligus memastikan database baru memakai utf8mb4 untuk teks multibahasa dan emoji. Nilai ini aman untuk kebanyakan aplikasi web modern.
Restart service agar konfigurasi baru dimuat:
sudo systemctl restart mariadb
Buat Database dan Userโ
Buat database, user, dan grant minimum yang dibutuhkan aplikasi dengan satu eksekusi berikut:
sudo mariadb <<'SQL'
CREATE DATABASE aplikasi_prod CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'GantiPasswordKuat123!';
GRANT ALL PRIVILEGES ON aplikasi_prod.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'appuser'@'localhost';
SQL
Jika aplikasi berjalan di server lain, jangan langsung mengganti host menjadi %. Buat host yang spesifik, misalnya 10.10.10.%, lalu buka bind-address dan firewall hanya untuk subnet aplikasi.
Pengujian Fungsional MariaDBโ
Pengujian fungsional harus membuktikan bahwa user aplikasi benar-benar bisa login, membuat objek, menulis data, dan membaca data lagi. Cek seperti ini lebih berguna daripada berhenti di systemctl status.
-
Jalankan query uji berikut memakai user aplikasi yang baru dibuat:
MYSQL_PWD='GantiPasswordKuat123!' mariadb -u appuser aplikasi_prod <<'SQL'CREATE TABLE healthcheck (id INT PRIMARY KEY AUTO_INCREMENT,status VARCHAR(20) NOT NULL,checked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);INSERT INTO healthcheck (status) VALUES ('ok');SELECT id, status FROM healthcheck;SQL -
Pastikan output
SELECTmengembalikan minimal satu baris:id status1 ok -
Setelah verifikasi selesai, hapus password dari environment shell saat ini bila sebelumnya sempat Anda ekspor ke variabel sendiri:
unset MYSQL_PWD
Jika langkah ini berhasil, maka hak akses user aplikasi, karakter database, dan query dasar sudah bekerja normal.
Troubleshootingโ
Bagian ini fokus pada error yang paling sering muncul setelah install MariaDB di Ubuntu 24.04, bukan saran umum yang terlalu luas.
ERROR 1698 (28000): Access denied for user 'root'@'localhost'โ
Gejala
Saat Anda menjalankan mariadb -u root -p, login gagal dengan pesan:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Penyebab
Root MariaDB pada Ubuntu biasanya tetap mengizinkan autentikasi unix_socket untuk akses lokal. Pada MariaDB 10.11 paket Ubuntu, definisi user root juga bisa tampil sebagai kombinasi plugin seperti mysql_native_password dan unix_socket, sehingga pengecekan satu kolom plugin saja sering menyesatkan.
Diagnostik
Masuk dengan cara yang benar lalu cek definisi login root secara penuh:
sudo mariadb -e "SHOW CREATE USER root@localhost;"
Jika output menampilkan unix_socket sebagai salah satu metode autentikasi, perilaku ini normal.
Perbaikan
Gunakan sudo mariadb untuk administrasi lokal. Jika aplikasi butuh koneksi password, buat user aplikasi terpisah seperti pada langkah sebelumnya, bukan mengubah akun root.
Verifikasi
sudo mariadb -e "SELECT CURRENT_USER();"
Output yang benar akan menampilkan root@localhost.
ERROR 2002 (HY000): Can't connect to local server through socketโ
Gejala
Client gagal terhubung ke MariaDB dan menampilkan pesan seperti:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock'
Penyebab
Service MariaDB belum berjalan, gagal start setelah perubahan konfigurasi, atau direktori data sedang bermasalah karena disk penuh.
Diagnostik
Jalankan dua pengecekan berikut:
sudo systemctl status mariadb --no-pager
sudo journalctl -u mariadb -n 30 --no-pager
Jika log menunjukkan error konfigurasi, biasanya ada salah ketik pada file .cnf. Jika log menunjukkan kegagalan menulis file, cek kapasitas disk.
df -h /var/lib/mysql
Perbaikan
Jika masalah muncul setelah membuat file override, periksa ulang isinya. Konfigurasi paling sering salah adalah nama directive atau blok section. Setelah diperbaiki, restart MariaDB lagi:
sudo systemctl restart mariadb
Jika disk penuh, kosongkan ruang pada filesystem yang menampung /var/lib/mysql sebelum restart.
Verifikasi
sudo systemctl is-active mariadb
sudo mariadb-admin ping
Output yang diharapkan adalah active dan mysqld is alive.
ERROR 1045 (28000): Access denied for user 'appuser'@'localhost'โ
Gejala
User aplikasi gagal login walaupun database server aktif:
ERROR 1045 (28000): Access denied for user 'appuser'@'localhost' (using password: YES)
Penyebab
Password salah, host pada grant tidak cocok, atau user dibuat untuk host yang berbeda dari sumber koneksi aplikasi.
Diagnostik
Periksa grant yang aktif untuk user tersebut:
sudo mariadb -e "SHOW GRANTS FOR 'appuser'@'localhost';"
Jika user yang tersedia ternyata appuser@127.0.0.1 atau subnet lain, koneksi dari localhost tidak akan cocok.
Perbaikan
Setel ulang password dan grant pada host yang benar:
sudo mariadb -e "ALTER USER 'appuser'@'localhost' IDENTIFIED BY 'GantiPasswordKuat123!';"
sudo mariadb -e "GRANT ALL PRIVILEGES ON aplikasi_prod.* TO 'appuser'@'localhost'; FLUSH PRIVILEGES;"
Verifikasi
MYSQL_PWD='GantiPasswordKuat123!' mariadb -u appuser -e "SELECT DATABASE();" aplikasi_prod
Jika login berhasil, output akan menampilkan aplikasi_prod.
E: Package 'mariadb-server' has no installation candidateโ
Gejala
Perintah apt install gagal dengan pesan:
E: Package 'mariadb-server' has no installation candidate
Penyebab
Indeks apt belum diperbarui, mirror repository sedang tidak sinkron, atau file source Ubuntu di server tidak valid.
Diagnostik
sudo apt update
apt-cache policy mariadb-server
Jika apt-cache policy tidak menampilkan kandidat versi sama sekali, masalah ada pada source apt, bukan pada MariaDB.
Perbaikan
Pastikan server masih memakai source Ubuntu 24.04 yang aktif, lalu ulangi instalasi setelah apt update selesai tanpa error.
sudo apt install -y mariadb-server mariadb-client
Verifikasi
apt-cache policy mariadb-server
Baris Candidate: harus terisi versi MariaDB 10.11 untuk Ubuntu 24.04.
Verifikasi MariaDB Setelah Konfigurasiโ
Sebelum database dipakai aplikasi, lakukan verifikasi akhir berikut:
-
Pastikan service aktif:
sudo systemctl is-active mariadb -
Pastikan MariaDB merespons ping lokal:
sudo mariadb-admin ping -
Pastikan user aplikasi bisa menjalankan query:
MYSQL_PWD='GantiPasswordKuat123!' mariadb -u appuser -e "SELECT NOW();" aplikasi_prod -
Pastikan paket yang terpasang masih berasal dari candidate Ubuntu 24.04:
apt-cache policy mariadb-server -
Pastikan port hanya terbuka sesuai kebutuhan:
sudo ss -tlnp | grep 3306
Jika lima cek ini lolos, instalasi MariaDB di Ubuntu 24.04 sudah cukup aman untuk dipakai oleh aplikasi lokal dan siap masuk tahap integrasi berikutnya.
