Install MariaDB di Debian 12

Dari Dokumentasi Robie
Revisi sejak 20 Oktober 2026 06.51 oleh Robie (bicara | kontrib)
Loncat ke navigasi Loncat ke pencarian

Pengertian Database

Database adalah kumpulan data yang disimpan secara teratur agar mudah dicari, diolah, dan ditampilkan. Contoh di sekolah data siswa tidak ditulis di buku satu per satu, tetapi disimpan dalam database dengan nama db_sekolah.

Untuk mengatur database dibutuhkan aplikasi yang disebut DBMS (Database Management System). Contoh DBMS adalah MariaDB, MySQL, PostgreSQL. Di praktek ini kita memakai MariaDB.

Bahasa untuk memerintah database disebut SQL (Structured Query Language). Yang dipakai di praktek ini dibagi 3:

  1. DDL untuk membuat struktur. Contoh CREATE DATABASE, CREATE TABLE, DROP TABLE, DROP DATABASE.
  2. DML untuk mengolah isi. Contoh INSERT, SELECT, UPDATE, DELETE.
  3. DCL untuk hak akses. Contoh CREATE USER, GRANT, FLUSH PRIVILEGES.

Kenapa MariaDB di Debian 12

MariaDB adalah hasil fork dari MySQL yang gratis dan open source. Di Debian 12 MariaDB sudah menjadi database bawaan pengganti MySQL dengan versi 10.11.

Saat install ada 2 paket utama:

  1. mariadb-server untuk service database yang jalan di belakang layar lewat port 3306.
  2. mariadb-client untuk perintah mariadb dan mysql lewat terminal.

Di Debian 12 user root memakai unix_socket, artinya login harus pakai sudo tanpa password seperti sudo mariadb -u root. Ini beda dengan Ubuntu yang biasanya diminta password saat install.

Istilah Dasar yang Dipakai di Praktek Ini

Agar tidak bingung saat praktek, hafalkan istilah berikut yang dipakai dengan contoh data siswa:

  1. Database db_sekolah adalah lemari besarnya.
  2. Tabel siswa adalah satu laci di dalam lemari.
  3. Kolom adalah judul tegak. Contoh nis, nama, kelas, jurusan.
  4. Baris atau record adalah isi mendatar. Contoh '001', 'Andi Pratama', 'XII', 'TJKT'.
  5. Primary Key adalah penanda unik agar tidak kembar. Di praktek ini nis VARCHAR(10) PRIMARY KEY.

Alur praktek di bawah urutannya sama dengan cara kerja asli: install lalu cek service, masuk, lihat database, buat database, pilih database, buat tabel, isi data, edit, hapus sebagian, backup, atur user, baru hapus tabel dan database untuk latihan.

Install MariaDB di Debian 12

Untuk menginstall MariaDB di Debian 12 caranya mudah. lakukan perintah berikut pada terminal linux.

Update Sistem

robie@debian:~$ sudo apt update

Instal MariaDB

robie@debian:~$ sudo apt install mariadb-server mariadb-client -y

tunggu proses hingga selesai.

Proses install akan terlihat seperti berikut

robie@debian:~$ sudo apt install mariadb-server mariadb-client -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  galera-4 gawk libaio1 libdbi-perl libhtml-template-perl libsigsegv2
  mariadb-client-core mariadb-server-core socat
...
Setting up mariadb-server (1:10.11.4-1~deb12u1) ...
Processing triggers for libc-bin ...
robie@debian:~$

Cek Service MariaDB

Untuk mengecek service mariadb sudah berjalan ketikkan perintah berikut

robie@debian:~$ sudo systemctl status mariadb

Jika instalasi berhasil, akan terlihat pesan active (running).

Agar otomatis jalan saat komputer hidup

robie@debian:~$ sudo systemctl enable mariadb

Untuk mengecek versi

robie@debian:~$ mariadb --version

Masuk ke MariaDB lewat Terminal

Di Debian 12 user root memakai unix_socket, jadi masuk pakai sudo tanpa password

robie@debian:~$ sudo mariadb -u root -p

atau

robie@debian:~$ sudo mysql -u root

Jika berhasil akan terlihat seperti berikut

Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
MariaDB [(none)]>

Untuk keluar nanti ketik EXIT;

Mengecek Database

Setelah masuk ke MariaDB [(none)]> ketikkan perintah berikut untuk melihat database yang ada

MariaDB [(none)]> SHOW DATABASES;

akan terlihat seperti berikut

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Membuat Database Baru

Contoh membuat database dengan nama db_sekolah

MariaDB [(none)]> CREATE DATABASE db_sekolah;

cek lagi dengan SHOW DATABASES; maka db_sekolah sudah ada.

Memilih Database

Untuk memakai database yang telah dibuat

MariaDB [(none)]> USE db_sekolah;

akan terlihat

Database changed
MariaDB [db_sekolah]>

Membuat Tabel

Contoh membuat tabel siswa ke database db_sekolah yang telah dipilih

MariaDB [db_sekolah]> CREATE TABLE siswa (

nis VARCHAR(10) PRIMARY KEY,
nama VARCHAR(50),
kelas VARCHAR(10),
jurusan VARCHAR(20)
);

Untuk mengecek tabel

MariaDB [db_sekolah]> SHOW TABLES;

Untuk melihat struktur tabel

MariaDB [db_sekolah]> DESCRIBE siswa;

Menginputkan Data ke Tabel

Contoh input data siswa

MariaDB [db_sekolah]> INSERT INTO siswa (nis, nama, kelas, jurusan) VALUES ('001', 'Andi Pratama', 'XII', 'TJKT'); MariaDB [db_sekolah]> INSERT INTO siswa (nis, nama, kelas, jurusan) VALUES ('002', 'Budi Santoso', 'XII', 'TJKT'), ('003', 'Siti Aminah', 'XI', 'TJKT');

Untuk melihat isi tabel

MariaDB [db_sekolah]> SELECT * FROM siswa;

akan terlihat seperti berikut

+------+--------------+-------+---------+
| nis  | nama         | kelas | jurusan |
+------+--------------+-------+---------+
| 001  | Andi Pratama | XII   | TJKT    |
| 002  | Budi Santoso | XII   | TJKT    |
| 003  | Siti Aminah  | XI    | TJKT    |
+------+--------------+-------+---------+

Mengedit Data di Tabel

Contoh mengedit kelas Siti Aminah dari XI menjadi XII

MariaDB [db_sekolah]> UPDATE siswa SET kelas='XII' WHERE nis='003';

cek lagi dengan SELECT * FROM siswa WHERE nis='003';

Menghapus Data di Tabel

Contoh menghapus data Budi Santoso

MariaDB [db_sekolah]> DELETE FROM siswa WHERE nis='002';

cek lagi dengan SELECT * FROM siswa; maka tinggal 2 data.

Backup dan Restore Database

Lakukan backup sebelum menghapus tabel atau database. Harus keluar dulu dari mariadb dengan EXIT;

robie@debian:~$ sudo mysqldump -u root -p db_sekolah > backup-sekolah.sql

masukkan password root lalu cek hasil backup

robie@debian:~$ ls -lh backup-sekolah.sql

akan terlihat seperti berikut

-rw-r--r-- 1 robie robie 2,5K Okt 13 10:00 backup-sekolah.sql

Untuk melihat isi file backup

robie@debian:~$ cat backup-sekolah.sql

Untuk restore ke database baru. Contoh restore ke db_sekolah_baru

MariaDB [(none)]> CREATE DATABASE db_sekolah_baru; MariaDB [(none)]> EXIT;

robie@debian:~$ sudo mysql -u root -p db_sekolah_baru < backup-sekolah.sql

cek hasil restore

robie@debian:~$ sudo mariadb -u root -p MariaDB [(none)]> USE db_sekolah_baru; MariaDB [db_sekolah_baru]> SHOW TABLES; MariaDB [db_sekolah_baru]> SELECT * FROM siswa;

maka data siswa akan kembali seperti semula.

Membuat User Baru dan Hak Akses

Agar tidak selalu memakai user root, buat user baru. Contoh membuat user guru dengan password 12345

MariaDB [(none)]> CREATE USER 'guru'@'localhost' IDENTIFIED BY '12345';

Untuk melihat user yang ada

MariaDB [(none)]> SELECT User, Host FROM mysql.user;

akan terlihat seperti berikut

+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| root        | localhost |
| guru        | localhost |
+-------------+-----------+

Berikan hak akses ke database db_sekolah

MariaDB [(none)]> GRANT ALL PRIVILEGES ON db_sekolah.* TO 'guru'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES;

Untuk mengecek hak akses user guru

MariaDB [(none)]> SHOW GRANTS FOR 'guru'@'localhost';

Untuk mencoba login dengan user guru keluar dulu dengan EXIT; lalu ketikkan perintah berikut

robie@debian:~$ mariadb -u guru -p

masukkan password 12345 maka akan masuk

Enter password:
Welcome to the MariaDB monitor.
MariaDB [(none)]>

Jika ingin menghapus user

MariaDB [(none)]> DROP USER 'guru'@'localhost';

Menghapus Tabel

MariaDB [db_sekolah]> DROP TABLE siswa;

cek dengan SHOW TABLES; maka akan kosong Empty set.

Menghapus Database

MariaDB [db_sekolah]> DROP DATABASE db_sekolah;

cek dengan SHOW DATABASES; maka db_sekolah sudah hilang.

Untuk keluar dari mariadb

MariaDB [(none)]> EXIT;


Menampilkan Data di Halaman PHP

Data di database bisa ditampilkan di halaman web memakai PHP. PHP terhubung ke MariaDB, menjalankan perintah SELECT, lalu hasilnya dicetak menjadi tabel HTML. Di praktek ini kita memakai user guru, bukan root.

Menyiapkan Ulang Database

Pada langkah sebelumnya database db_sekolah sudah dihapus, jadi buat lagi. Masuk ke MariaDB

robie@debian:~$ sudo mariadb -u root

Buat database, tabel, dan isi datanya

MariaDB [(none)]> CREATE DATABASE db_sekolah; MariaDB [(none)]> USE db_sekolah; MariaDB [db_sekolah]> CREATE TABLE siswa (

nis VARCHAR(10) PRIMARY KEY,
nama VARCHAR(50),
kelas VARCHAR(10),
jurusan VARCHAR(20)
);

MariaDB [db_sekolah]> INSERT INTO siswa (nis, nama, kelas, jurusan) VALUES ('001', 'Andi Pratama', 'XII', 'TJKT'), ('002', 'Budi Santoso', 'XII', 'TJKT'), ('003', 'Siti Aminah', 'XI', 'TJKT');

Buat user guru dan beri hak akses. Jika user sudah ada, perintah ini tidak akan error

MariaDB [db_sekolah]> CREATE USER IF NOT EXISTS 'guru'@'localhost' IDENTIFIED BY '12345'; MariaDB [db_sekolah]> GRANT ALL PRIVILEGES ON db_sekolah.* TO 'guru'@'localhost'; MariaDB [db_sekolah]> FLUSH PRIVILEGES; MariaDB [db_sekolah]> EXIT;

Install PHP

Install PHP beserta modul MySQL untuk PHP

robie@debian:~$ sudo apt install php php-mysql -y

Restart Apache agar PHP terbaca

robie@debian:~$ sudo systemctl restart apache2

Cek versi PHP

robie@debian:~$ php -v

Membuat Halaman PHP

Buat file PHP di folder web server

robie@debian:~$ sudo nano /var/www/html/siswa.php

Isi file dengan kode berikut

<?php
// 1. Data koneksi
$host = "localhost";
$user = "guru";
$pass = "12345";
$db   = "db_sekolah";

// 2. Membuat koneksi ke MariaDB
$koneksi = mysqli_connect($host, $user, $pass, $db);

// 3. Cek koneksi
if (!$koneksi) {
    die("Koneksi gagal: " . mysqli_connect_error());
}

// 4. Menjalankan perintah SQL
$hasil = mysqli_query($koneksi, "SELECT * FROM siswa");
?>
<!DOCTYPE html>
<html>
<head>
    <title>Data Siswa</title>
</head>
<body>
    <h2>Data Siswa</h2>
    <table border="1" cellpadding="5" cellspacing="0">
        <tr>
            <th>No</th>
            <th>NIS</th>
            <th>Nama</th>
            <th>Kelas</th>
            <th>Jurusan</th>
        </tr>
        <?php
        $no = 1;
        // 5. Mengambil data baris demi baris
        while ($row = mysqli_fetch_assoc($hasil)) {
        ?>
        <tr>
            <td><?php echo $no++; ?></td>
            <td><?php echo htmlspecialchars($row['nis']); ?></td>
            <td><?php echo htmlspecialchars($row['nama']); ?></td>
            <td><?php echo htmlspecialchars($row['kelas']); ?></td>
            <td><?php echo htmlspecialchars($row['jurusan']); ?></td>
        </tr>
        <?php } ?>
    </table>
</body>
</html>
<?php
// 6. Menutup koneksi
mysqli_close($koneksi);
?>

Simpan dengan menekan CTRL+O, Enter, lalu keluar dengan CTRL+X.

Penjelasan fungsi yang dipakai:

  1. mysqli_connect() untuk membuat koneksi ke database dengan host, user, password, dan nama database.
  2. mysqli_connect_error() untuk menampilkan pesan jika koneksi gagal.
  3. mysqli_query() untuk menjalankan perintah SQL, di sini SELECT * FROM siswa.
  4. mysqli_fetch_assoc() untuk mengambil satu baris hasil dalam bentuk array dengan nama kolom sebagai kunci, contoh $row['nama']. Dipakai di dalam while agar semua baris terbaca.
  5. htmlspecialchars() untuk mengamankan teks sebelum dicetak ke HTML.
  6. mysqli_close() untuk menutup koneksi.

Membuka Halaman di Browser

Buka browser lalu ketikkan alamat berikut

http://localhost/siswa.php

Jika dibuka dari komputer lain, ganti localhost dengan alamat IP server Debian.

Jika berhasil, halaman akan menampilkan tabel seperti berikut

+----+------+--------------+-------+---------+
| No | NIS  | Nama         | Kelas | Jurusan |
+----+------+--------------+-------+---------+
| 1  | 001  | Andi Pratama | XII   | TJKT    |
| 2  | 002  | Budi Santoso | XII   | TJKT    |
| 3  | 003  | Siti Aminah  | XI    | TJKT    |
+----+------+--------------+-------+---------+

Jika Terjadi Error

  1. Call to undefined function mysqli_connect() artinya paket php-mysql belum terinstall atau Apache belum direstart.
  2. Access denied for user 'guru'@'localhost' artinya password salah atau hak akses belum diberikan. Cek dengan SHOW GRANTS FOR 'guru'@'localhost';.
  3. Unknown database 'db_sekolah' artinya database belum dibuat ulang. Ulangi langkah menyiapkan ulang database.
  4. Halaman tidak terbuka atau file terunduh, artinya Apache belum jalan atau PHP belum aktif. Cek dengan sudo systemctl status apache2 dan pastikan sudah restart Apache setelah install PHP.