Cara Mudah Setup MariaDB 10 di Podman

6 Agustus 2026

Menjalankan MariaDB lewat container itu jauh lebih praktis dibanding install langsung di sistem: tidak ada konflik versi, gampang dihapus kalau sudah tidak dipakai, dan datanya tetap aman selama disimpan di volume. Artikel ini membahas cara menjalankan MariaDB 10 pakai Podman, termasuk cara konek ke database-nya dan isu izin volume yang sering muncul di rootless Podman.

Prasyarat

Langkah 1: Pull dan Jalankan Container

podman run -d \
  --name mariadb10 \
  -e MARIADB_ROOT_PASSWORD=yourpassword \
  -e MARIADB_DATABASE=mydb \
  -e MARIADB_USER=myuser \
  -e MARIADB_PASSWORD=myuserpassword \
  -p 127.0.0.1:3306:3306 \
  -v mariadb10_data:/var/lib/mysql \
  docker.io/library/mariadb:10

Penjelasan tiap opsinya:

💡 Ganti yourpassword dan myuserpassword dengan password yang kuat, terutama kalau container ini akan diakses lebih dari sekadar localhost.

Langkah 2: Pastikan Container Sudah Jalan

podman ps
podman logs -f mariadb10

Tunggu sampai muncul baris seperti ready for connections di log sebelum mencoba konek — ini tandanya MariaDB sudah selesai inisialisasi dan siap menerima koneksi.

💡 Khusus di run pertama (saat volume masih kosong dan database baru diinisialisasi), baris ini biasanya muncul dua kali: sekali untuk server sementara yang dipakai menjalankan skrip inisialisasi, lalu sekali lagi setelah MariaDB restart otomatis dan jalan permanen. Kalau kamu konek persis di antara dua baris itu, biasanya akan kena connection refused sesaat — tunggu baris kedua supaya aman.

Langkah 3: Konek ke Database

Dari dalam container:

podman exec -it mariadb10 mariadb -uroot -p

Dari host (kalau sudah punya client mysql/mariadb terinstall):

mariadb -h 127.0.0.1 -P 3306 -uroot -p

Langkah 4: Catatan untuk Rootless Podman

Kalau kamu menjalankan Podman dalam mode rootless dan container gagal start atau muncul error izin (permission denied) saat menulis ke volume, biasanya penyebabnya adalah SELinux. Tambahkan suffix :Z di mount volume-nya supaya Podman melakukan relabeling otomatis:

-v mariadb10_data:/var/lib/mysql:Z

💡 Flag :Z memberi tahu Podman bahwa volume ini hanya dipakai oleh satu container, jadi konteks SELinux-nya di-set khusus untuk itu. Kalau volume yang sama dipakai bareng oleh beberapa container, pakai :z (huruf kecil) sebagai gantinya.

Langkah 5: Mengelola Container

Beberapa perintah dasar untuk sehari-hari:

podman stop mariadb10        # hentikan container
podman start mariadb10       # jalankan lagi (data tetap ada)
podman rm mariadb10          # hapus container (volume tetap ada)
podman volume rm mariadb10_data   # hapus volume juga, kalau memang mau reset data

Langkah 6: Import Dump SQL ke Database

Kalau kamu migrasi dari server lama atau restore backup, ini cara import file .sql ke MariaDB yang jalan di container.

Opsi 1: Pipe Langsung dari Host (Paling Simpel)

podman exec -i mariadb10 mariadb -uroot -pyourpassword mydb < /path/to/dump.sql

Opsi 2: Copy File ke Container Dulu, Baru Import di Dalam

Lebih cocok untuk file .sql yang besar:

podman cp /path/to/dump.sql mariadb10:/tmp/dump.sql
podman exec -it mariadb10 mariadb -uroot -pyourpassword mydb -e "SOURCE /tmp/dump.sql"

atau, cara yang setara:

podman exec -it mariadb10 bash -c "mariadb -uroot -pyourpassword mydb < /tmp/dump.sql"

Kalau Dump Sudah Punya Perintah CREATE DATABASE / USE Sendiri

Kalau dump-nya sudah lengkap dengan statement CREATE DATABASE dan USE, tidak perlu sebutkan nama database — cukup konek saja:

podman exec -i mariadb10 mariadb -uroot -pyourpassword < /path/to/dump.sql

Beberapa Tips Praktis

Langkah Selanjutnya

Setup manual seperti di atas sudah cukup untuk development sehari-hari. Kalau kamu butuh MariaDB yang otomatis jalan setiap kali sistem boot — misalnya untuk kebutuhan server — pertimbangkan untuk memindahkan konfigurasi ini ke podman-compose atau Quadlet file, supaya lifecycle container-nya dikelola oleh systemd.