Install MariaDB di Debian 12: Perbedaan antara revisi

Dari Dokumentasi Robie
Loncat ke navigasi Loncat ke pencarian
Tidak ada ringkasan suntingan
 
(7 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 135: Baris 135:


Contoh membuat tabel siswa ke database db_sekolah yang telah dipilih
Contoh membuat tabel siswa ke database db_sekolah yang telah dipilih
<code>MariaDB [db_sekolah]> CREATE TABLE siswa (
<code>MariaDB [db_sekolah]> CREATE TABLE siswa (
  nis VARCHAR(10) PRIMARY KEY,
  nis VARCHAR(10) PRIMARY KEY,
Baris 141: Baris 140:
  kelas VARCHAR(10),
  kelas VARCHAR(10),
  jurusan VARCHAR(20)
  jurusan VARCHAR(20)
  );</code>
  );
 
 
</code>


Untuk mengecek tabel
Untuk mengecek tabel
Baris 156: Baris 158:


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


Baris 209: Baris 212:


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


Baris 216: Baris 220:


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


Baris 245: Baris 252:


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


Baris 280: Baris 288:


<code>MariaDB [(none)]> EXIT;</code>
<code>MariaDB [(none)]> EXIT;</code>
== Menampilkan Data di Halaman PHP ==
Data di database bisa ditampilkan di halaman web memakai PHP. PHP terhubung ke MariaDB, menjalankan perintah <code>SELECT</code>, lalu hasilnya dicetak menjadi tabel HTML. Di praktek ini kita memakai user <code>guru</code>, bukan <code>root</code>.
=== Menyiapkan Ulang Database ===
Pada langkah sebelumnya database <code>db_sekolah</code> sudah dihapus, jadi buat lagi. Masuk ke MariaDB
<code>robie@debian:~$ sudo mariadb -u root</code>
Buat database, tabel, dan isi datanya
<code>MariaDB [(none)]> CREATE DATABASE db_sekolah;</code>
<code>MariaDB [(none)]> USE db_sekolah;</code>
<code>MariaDB [db_sekolah]> CREATE TABLE siswa (nis VARCHAR(10) PRIMARY KEY,</code>
nama VARCHAR(50),</code>
kelas VARCHAR(10),</code>
jurusan VARCHAR(20)</code>
);</code>
<code>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');</code>
Buat user <code>guru</code> dan beri hak akses. Jika user sudah ada, perintah ini tidak akan error
<code>MariaDB [db_sekolah]> CREATE USER IF NOT EXISTS 'guru'@'localhost' IDENTIFIED BY '12345';</code>
<code>MariaDB [db_sekolah]> GRANT ALL PRIVILEGES ON db_sekolah.* TO 'guru'@'localhost';</code>
<code>MariaDB [db_sekolah]> FLUSH PRIVILEGES;</code>
<code>MariaDB [db_sekolah]> EXIT;</code>
=== Install PHP ===
Install PHP beserta modul MySQL untuk PHP
<code>robie@debian:~$ sudo apt install php php-mysql -y</code>
Restart Apache agar PHP terbaca
<code>robie@debian:~$ sudo systemctl restart apache2</code>
Cek versi PHP
<code>robie@debian:~$ php -v</code>
=== Membuat Halaman PHP ===
Buat file PHP di folder web server
<code>robie@debian:~$ sudo nano /var/www/html/siswa.php</code>
Isi file dengan kode berikut


<pre>
<pre>
Baris 337: Baris 405:
</pre>
</pre>


Simpan dengan menekan <code>CTRL+O</code>, <code>Enter</code>, lalu keluar dengan <code>CTRL+X</code>.
Penjelasan fungsi yang dipakai:
# <code>mysqli_connect()</code> untuk membuat koneksi ke database dengan host, user, password, dan nama database.
# <code>mysqli_connect_error()</code> untuk menampilkan pesan jika koneksi gagal.
# <code>mysqli_query()</code> untuk menjalankan perintah SQL, di sini <code>SELECT * FROM siswa</code>.
# <code>mysqli_fetch_assoc()</code> untuk mengambil satu baris hasil dalam bentuk array dengan nama kolom sebagai kunci, contoh <code>$row['nama']</code>. Dipakai di dalam <code>while</code> agar semua baris terbaca.
# <code>htmlspecialchars()</code> untuk mengamankan teks sebelum dicetak ke HTML.
# <code>mysqli_close()</code> untuk menutup koneksi.
=== Membuka Halaman di Browser ===
Buka browser lalu ketikkan alamat berikut
<code>[http://localhost/siswa.php http://ip-address-ct/siswa.php]</code>
Jika dibuka dari komputer lain, ganti <code>localhost</code> 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 ===
# <code>Call to undefined function mysqli_connect()</code> artinya paket <code>php-mysql</code> belum terinstall atau Apache belum direstart.
# <code>Access denied for user 'guru'@'localhost'</code> artinya password salah atau hak akses belum diberikan. Cek dengan <code>SHOW GRANTS FOR 'guru'@'localhost';</code>.
# <code>Unknown database 'db_sekolah'</code> artinya database belum dibuat ulang. Ulangi langkah menyiapkan ulang database.
# Halaman tidak terbuka atau file terunduh, artinya Apache belum jalan atau PHP belum aktif. Cek dengan <code>sudo systemctl status apache2</code> dan pastikan sudah restart Apache setelah install PHP.


[[Kategori:Linux]]
[[Kategori:Linux]]
[[Kategori:ASJ TKJ]]
[[Kategori:ASJ TKJ]]

Revisi terkini sejak 20 Oktober 2026 07.09

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://ip-address-ct/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.