Install MariaDB di Debian 12
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:
- DDL untuk membuat struktur. Contoh
CREATE DATABASE,CREATE TABLE,DROP TABLE,DROP DATABASE. - DML untuk mengolah isi. Contoh
INSERT,SELECT,UPDATE,DELETE. - 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:
mariadb-serveruntuk service database yang jalan di belakang layar lewat port 3306.mariadb-clientuntuk perintahmariadbdanmysqllewat 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:
- Database
db_sekolahadalah lemari besarnya. - Tabel
siswaadalah satu laci di dalam lemari. - Kolom adalah judul tegak. Contoh
nis, nama, kelas, jurusan. - Baris atau record adalah isi mendatar. Contoh
'001', 'Andi Pratama', 'XII', 'TJKT'. - 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;
<?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);
?>