Lewati ke konten utama
  1. MariaDB/

Cara Install & Konfigurasi MariaDB di Ubuntu Server

Penulis
GezyTech
Menulis tentang AI, Linux, Server, Docker, dan teknologi lainnya.

TLDR
#

MariaDB adalah database relasional open source yang kompatibel dengan MySQL. Di Ubuntu Server, kamu bisa memasangnya lewat apt, mengamankannya dengan mysql_secure_installation, lalu mulai membuat user dan database. Artikel ini memandu dari nol sampai siap produksi, termasuk backup dan restore.


Pendahuluan
#

MariaDB adalah fork dari MySQL yang dikembangkan komunitas setelah akuisisi MySQL oleh Oracle. Ia mempertahankan kompatibilitas penuh dengan MySQL — sintaks, protokol, bahkan driver yang sama — sehingga hampir semua aplikasi yang tadinya memakai MySQL bisa pindah ke MariaDB tanpa banyak perubahan.

Kelebihan utama MariaDB:

  • Open source dengan lisensi GPL yang jelas.
  • Kompatibel dengan MySQL (drop-in replacement).
  • Ringan — cocok untuk VPS kecil sekalipun.
  • Aktif dikembangkan dengan fitur tambahan di atas MySQL.

Prasyarat
#

Siapkan:

  1. Server Ubuntu (20.04 ke atas) dengan akses SSH.
  2. User dengan hak sudo.
  3. Port 3306 (default MariaDB) tidak diblokir firewall, kecuali hanya diakses lokal.

Update paket sebelum mulai:

sudo apt update
sudo apt upgrade -y

Instalasi MariaDB
#

Pasang paket mariadb-server:

sudo apt install -y mariadb-server

Setelah selesai, periksa status layanan:

sudo systemctl status mariadb

Jika belum aktif, jalankan:

sudo systemctl enable mariadb
sudo systemctl start mariadb

Verifikasi versi:

mariadb --version

Pengamanan Awal (mysql_secure_installation)
#

MariaDB menyediakan skrip pengamanan bawaan. Jalankan:

sudo mysql_secure_installation

Ikuti interaksinya:

  • Enter current password for root — tekan Enter (default kosong).
  • Switch to unix_socket authentication? — pilih Y agar root hanya bisa login dari user sistem yang sama.
  • Remove anonymous users?Y.
  • Disallow root login remotely?Y.
  • Remove test database?Y.
  • Reload privilege tables?Y.

Dengan pengaturan ini, akses root hanya lewat sudo mariadb dari server, bukan lewat password.


Membuat Database dan User
#

Login sebagai root:

sudo mariadb

Buat database:

CREATE DATABASE namaku_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Buat user dan beri hak akses:

CREATE USER 'namaku_user'@'localhost' IDENTIFIED BY 'password_kuat';
GRANT ALL PRIVILEGES ON namaku_database.* TO 'namaku_user'@'localhost';
FLUSH PRIVILEGES;

Ganti namaku_database, namaku_user, dan password_kuat dengan nilai milikmu. Selalu pakai password yang kuat.


Mengaktifkan Akses dari Jarak Jauh (Opsional)
#

Secara default, MariaDB hanya mendengarkan 127.0.0.1 (localhost). Jika aplikasi di server lain perlu mengaksesnya, ubah bind-address.

Buka file konfigurasi:

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

Cari baris:

bind-address            = 127.0.0.1

Ubah menjadi:

bind-address            = 0.0.0.0

Restart layanan:

sudo systemctl restart mariadb

Kemudian buat user yang boleh login dari alamat tertentu (bukan localhost):

CREATE USER 'namaku_user'@'192.168.1.10' IDENTIFIED BY 'password_kuat';
GRANT ALL PRIVILEGES ON namaku_database.* TO 'namaku_user'@'192.168.1.10';
FLUSH PRIVILEGES;

Peringatan: Membuka port 3306 ke internet tanpa proteksi (firewall/SSH tunnel) sangat berisiko. Untuk produksi, batasi ke IP tertentu atau gunakan SSH tunnel seperti pada artikel 9Router.


Firewall (UFW)
#

Jika server memakai UFW, izinkan port MariaDB hanya untuk jaringan lokal:

sudo ufw allow from 192.168.1.0/24 to any port 3306
sudo ufw reload

Jangan pernah ufw allow 3306 tanpa batasan asal, kecuali memang disengaja.


Backup dan Restore
#

Backup
#

Gunakan mariadb-dump (atau mysqldump) untuk mencadangkan database:

mariadb-dump -u namaku_user -p namaku_database > backup.sql

Untuk semua database:

mariadb-dump -u root -p --all-databases > backup_all.sql

Restore
#

mariadb -u namaku_user -p namaku_database < backup.sql

Backup otomatis dengan cron
#

Tambahkan ke crontab (crontab -e):

0 2 * * * mariadb-dump -u root namaku_database | gzip > /backup/db-$(date +\%F).sql.gz

Baris di atas membuat backup terkompres setiap pukul 02:00.


Perintah Umum
#

Perintah Fungsi
sudo mariadb Login root via socket
mariadb -u user -p Login sebagai user
SHOW DATABASES; Lihat semua database
USE namaku_database; Pilih database
SHOW TABLES; Lihat tabel
EXIT; Keluar

Troubleshooting
#

Access denied for user 'root'@'localhost'
#

Root memakai unix_socket. Gunakan sudo mariadb untuk login root, atau buat user admin baru dengan password.

Can't connect to MySQL server on ... (111)
#

Layanan tidak aktif atau bind-address masih 127.0.0.1. Periksa:

sudo systemctl status mariadb
sudo ss -ltnp | grep 3306

Port 3306 sudah dipakai
#

Kemungkinan MySQL lain masih terpasang. Hentikan dan nonaktifkan:

sudo systemctl stop mysql
sudo systemctl disable mysql

Keamanan
#

  • Jangan buka port 3306 ke publik tanpa firewall yang ketat.
  • Selalu gunakan password kuat untuk user database.
  • Batasi hak akses user sesuai kebutuhan (prinsip least privilege).
  • Lakukan backup berkala dan simpan di lokasi terpisah.
  • Perbarui MariaDB secara rutin dengan sudo apt upgrade.

Ringkasan Perintah
#

Instalasi dan pengamanan:

sudo apt install -y mariadb-server
sudo mysql_secure_installation

Login root:

sudo mariadb

Backup dan restore:

mariadb-dump -u user -p database > backup.sql
mariadb -u user -p database < backup.sql

Dokumentasi resmi: mariadb.org