Database server adalah sistem yang berfungsi untuk menyimpan, mengelola, dan menyediakan data untuk berbagai keperluan, baik dalam skala kecil maupun besar. Lebih lanjut, sistem ini memainkan peran kunci dalam banyak aplikasi, membantu perusahaan maupun organisasi untuk mengakses serta mengelola informasi secara efisien.
Fungsinya tidak hanya sekadar menyimpan data, tetapi juga memfasilitasi pengambilan data, pembaruan, hingga penghapusan data sesuai kebutuhan aplikasi atau pengguna. Perangkat ini menjadi tulang punggung berbagai sistem, mulai dari aplikasi perbankan hingga platform media sosial.
Sebagai pusat pengelolaan data, database server membantu pengguna untuk mengakses informasi secara simultan tanpa mengurangi efisiensi atau keamanan. Dengan memanfaatkan teknologi canggih, seperti sistem relational database atau NoSQL, server ini mampu mengelola data dalam jumlah besar dengan cepat dan andal. Artikel ini akan membahas lebih dalam mengenai database server mulai dari fungsi, cara kerja, jenis hingga contohnya.
Apa itu Database Server?
Database server adalah perangkat keras atau perangkat lunak yang dirancang khusus untuk menjalankan layanan basis data. Server ini memungkinkan banyak pengguna atau aplikasi untuk mengakses, menyimpan, dan memanipulasi data. Biasanya digunakan oleh perusahaan yang membutuhkan manajemen data dalam jumlah besar dengan tingkat keamanan dan kecepatan yang tinggi.
Secara sederhana, database server bisa diibaratkan sebagai perpustakaan digital di mana semua informasi disimpan dalam bentuk terorganisir. Server ini merespons permintaan pengguna, seperti pencarian atau pengambilan data, tanpa mempengaruhi data asli yang tersimpan.
Jenis database server yang umum digunakan diantaranya, Relational Database Server, NoSQL Database Server, dan Object-oriented Database Server. Setiap jenis tersebut memiliki karakteristik dan kegunaan yang berbeda, tergantung pada kebutuhan spesifik aplikasi atau organisasi.
Fungsi Database Server
Database server memiliki beberapa fungsi utama yang mendukung berbagai keperluan operasional:
- Menyimpan dan Mengelola Data Secara Terpusat
Semua data disimpan di satu lokasi terpusat sehingga memudahkan pengelolaan dan pengaksesannya. Dengan sistem ini, organisasi dapat memastikan bahwa data yang digunakan konsisten dan terkini di seluruh departemen atau aplikasi.
- Menjamin Keamanan dan Privasi Data
Database server dilengkapi dengan mekanisme keamanan seperti otentikasi, enkripsi, dan kontrol akses. Hal ini memastikan bahwa hanya pengguna yang memiliki otorisasi yang dapat mengakses atau mengubah data tertentu.
- Mengelola Akses Multi-User
Server ini mampu melayani permintaan dari banyak pengguna secara bersamaan tanpa mengurangi kecepatan atau konsistensi data. Dengan fitur seperti transaksi ACID (Atomicity, Consistency, Isolation, Durability), integritas data tetap terjamin bahkan dalam kondisi akses yang kompleks.
- Memudahkan Pemulihan Data
Dengan fitur backup otomatis dan kemampuan pemulihan bencana (disaster recovery), database server membantu organisasi meminimalkan risiko kehilangan data.
- Mempermudah Integrasi dengan Sistem Lain
Database server sering kali dirancang agar kompatibel dengan berbagai jenis aplikasi dan platform. Hal ini memungkinkan integrasi yang mudah antara sistem yang berbeda, seperti ERP, CRM, atau aplikasi e-commerce.
Dengan cara kerja yang terstruktur dan fungsi yang beragam, database server menjadi tulang punggung utama dalam pengelolaan data modern. Penggunaannya yang efisien tidak hanya meningkatkan produktivitas tetapi juga mendukung keamanan dan kelangsungan operasional perusahaan.
Jenis-Jenis Database Server
Terdapat berbagai jenis database server yang dapat digunakan sesuai kebutuhan aplikasi:
- Relational Database Server
Relational Database Server menggunakan model relasional untuk menyimpan data dalam bentuk tabel. Sistem ini cocok untuk data yang terstruktur dan memerlukan konsistensi tinggi. Bahasa SQL umumnya digunakan untuk mengelola data pada server ini. Contoh populer adalah MySQL, PostgreSQL, dan Microsoft SQL Server.
- NoSQL Database Server
NoSQL Database Server dirancang untuk menangani data yang tidak terstruktur, seperti dokumen, pasangan kunci-nilai, atau data grafis. Server ini ideal untuk aplikasi yang membutuhkan skalabilitas tinggi dan fleksibilitas dalam menyimpan data, seperti MongoDB dan Cassandra.
- Object-oriented Database Server
Jenis ini menyimpan data sebagai objek yang dapat diakses langsung oleh aplikasi berbasis pemrograman berorientasi objek. Server ini cocok untuk aplikasi yang membutuhkan manipulasi data yang kompleks, seperti CAD (Computer-Aided Design) atau multimedia.
Cara Kerja Database Server
Cara kerja database server melibatkan beberapa langkah yang dirancang untuk memastikan pengelolaan data yang efisien:
- Menerima Permintaan dari Klien
Klien pada aplikasi atau sistem akan mengirimkan permintaan ke database server melalui protokol tertentu, seperti SQL (Structured Query Language). Permintaan ini bisa berupa pencarian data, penyimpanan data baru, atau pembaruan data.
- Memproses Permintaan
Server memproses permintaan tersebut dengan mencari data yang diminta di dalam sistem penyimpanannya. Proses ini dilakukan menggunakan algoritma pencarian yang efisien dan, dalam banyak kasus, memanfaatkan fitur indeks untuk mempercepat pencarian.
- Mengelola Akses Multi-pengguna
Jika ada banyak pengguna yang mengakses server secara bersamaan, database server menggunakan mekanisme seperti transaksi dan locking untuk memastikan integritas data tetap terjaga. Hal ini menghindari konflik yang dapat terjadi saat dua pengguna mencoba mengubah data yang sama secara bersamaan.
- Mengirimkan Hasil ke Klien
Setelah memproses permintaan, server mengirimkan hasilnya kembali ke klien dalam bentuk data yang dapat dibaca dan digunakan. Waktu respons sangat bergantung pada kompleksitas permintaan, ukuran data, dan kapasitas server.
Contoh Penggunaan Database Server
Beberapa contoh implementasi database server dalam kehidupan sehari-hari adalah sebagai berikut:
- E-commerce
Di platform e-commerce, database server digunakan untuk menyimpan data penting, seperti informasi produk (nama, deskripsi, harga, dan stok), data pengguna (nama, alamat, dan preferensi belanja), serta riwayat transaksi.
Database ini membantu mengelola data keranjang belanja, riwayat pembelian, dan pengiriman, sehingga proses transaksi dapat berjalan dengan lancar dan cepat.
- Perbankan
Pada sektor perbankan, database server menyimpan data sensitif seperti informasi nasabah (nama, nomor rekening, alamat), serta riwayat transaksi (setoran, penarikan, transfer).
Keamanan data sangat diperhatikan, dengan perlindungan melalui enkripsi dan otorisasi akses yang ketat. Database ini juga mendukung transaksi secara real-time, memungkinkan bank memberikan layanan yang cepat dan aman kepada nasabah.
- Media Sosial
Di media sosial, database server menyimpan berbagai data pengguna, termasuk profil, postingan, komentar, dan interaksi lainnya. Data ini perlu dikelola dengan baik agar dapat diakses dengan cepat.
Database juga mendukung fitur pencarian dan pengorganisasian konten, seperti feed berita yang disesuaikan dengan minat pengguna. Ini membantu platform media sosial memberikan pengalaman pengguna yang baik meskipun dengan banyaknya data dan pengguna aktif.
Instalasi Database Server
Berikut adalah panduan cara menginstal Database Server (MariaDB) dengan LAMP stack serta phpMyAdmin di Debian 13 (Trixie) menggunakan perintah apt.
Sebelum memulai, silahkan buka terminal, login menggunakan user root lalu perbarui indeks paket sistem ke versi yang terbaru:
Langkah 1: Update System Repository
root@ns100:/# apt update && apt upgrade -y Hit:1 https://repo.smkn1klaten.sch.id/debian trixie InRelease Hit:2 https://repo.smkn1klaten.sch.id/debian-security trixie-security InRelease 41 packages can be upgraded. Run 'apt list --upgradable' to see them. Upgrading: base-files e2fsprogs libblkid1 libfdisk1 libsqlite3-0 logsave perl-modules-5.40 bash eject libcap2 liblastlog2-2 libss2 mount tzdata bsdextrautils fdisk libcap2-bin libmount1 libssl3t64 openssl util-linux bsdutils gzip libcom-err2 libpcre2-8-0 libuuid1 openssl-provider-legacy util-linux-extra busybox libaudit-common libexpat1 libperl5.40 linux-image-amd64 perl util-linux-locales dhcpcd-base libaudit1 libext2fs2t64 libsmartcols1 login perl-base Installing dependencies: linux-image-6.12.107+deb13-amd64 Suggested packages: firmware-linux-free linux-doc-6.12 debian-kernel-handbook Summary: Upgrading: 41, Installing: 1, Removing: 0, Not Upgrading: 0 Download size: 133 MB Space needed: 168 MB / 17.3 GB available Get:1 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 base-files amd64 13.8+deb13u7 [88.3 kB] Get:2 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 bash amd64 5.2.37-2+b10 [1,501 kB] Get:3 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 bsdutils amd64 1:2.41.5-0+deb13u1 [110 kB] Get:4 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 gzip amd64 1.13-1+deb13u1 [139 kB] Get:5 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 libperl5.40 amd64 5.40.1-6+deb13u1 [4,326 kB] ... Processing triggers for initramfs-tools (0.148.4) ... update-initramfs: Generating /boot/initrd.img-6.12.107+deb13-amd64 Processing triggers for libc-bin (2.41-12+deb13u4) ... Processing triggers for man-db (2.13.1-1) ... Processing triggers for debianutils (5.23.2) ... root@ns100:/#
Langkah 2: Instal Apache Web Server
root@ns100:~# apt install apache2 -y
apache2 is already the newest version (2.4.68-1~deb13u1).
Summary:
Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0
Jika munucl pesan seperti diatas, artinya aplikasi apache2 sudah ter-install (Sudah terinstall di tutorial #6 Web Server), lanjut ke langkah selanjutnya
Langkah 3: Instal dan Amankan MariaDB (Database Server)
Debian menggunakan MariaDB sebagai sistem manajemen basis data bawaan pengganti MySQL. Instal server dan klien basis data dengan perintah:
root@ns100:~# apt install mariadb-server mariadb-client -y Installing: mariadb-client mariadb-server Installing dependencies: galera-4 libhtml-template-perl mariadb-client-core gawk libhttp-date-perl mariadb-common libaio1t64 libhttp-message-perl mariadb-plugin-provider-bzip2 libcgi-fast-perl libio-compress-brotli-perl mariadb-plugin-provider-lz4 libcgi-pm-perl libio-html-perl mariadb-plugin-provider-lzma libclone-perl liblwp-mediatypes-perl mariadb-plugin-provider-lzo libconfig-inifiles-perl liblzo2-2 mariadb-plugin-provider-snappy libdbd-mariadb-perl libmariadb3 mariadb-server-core libdbi-perl libnuma1 mysql-common libencode-locale-perl libpcre2-posix3 psmisc libfcgi-bin libsigsegv2 pv libfcgi-perl libsnappy1v5 rsync libfcgi0t64 libterm-readkey-perl socat libhtml-parser-perl libtimedate-perl libhtml-tagset-perl liburi-perl Suggested packages: gawk-doc libsql-statement-perl libbusiness-isbn-perl libwww-perl netcat-openbsd libmldbm-perl libdata-dump-perl libmime-base32-perl mailx doc-base libnet-daemon-perl libipc-sharedcache-perl libregexp-ipv6-perl mariadb-test python3-braceexpand Summary: Upgrading: 0, Installing: 45, Removing: 0, Not Upgrading: 0 Download size: 21.2 MB Space needed: 204 MB / 17.0 GB available Get:1 http://10.10.129.20/debian trixie/main amd64 galera-4 amd64 26.4.23-0+deb13u1 [916 kB] Get:2 http://10.10.129.20/debian trixie/main amd64 libsigsegv2 amd64 2.14-1+b2 [34.4 kB] Get:3 http://10.10.129.20/debian trixie/main amd64 gawk amd64 1:5.2.1-2+b1 [674 kB] Get:4 http://10.10.129.20/debian trixie/main amd64 mysql-common all 5.8+1.1.1 [6,784 B] Get:5 http://10.10.129.20/debian trixie/main amd64 mariadb-common all 1:11.8.6-0+deb13u1 [29.5 kB] Get:6 http://10.10.129.20/debian trixie/main amd64 libdbi-perl amd64 1.652-2~deb13u1 [867 kB] Get:7 http://10.10.129.20/debian trixie/main amd64 libconfig-inifiles-perl all 3.000003-3+deb13u1 [45.0 kB] ... Setting up mariadb-server (1:11.8.6-0+deb13u1) ... Created symlink '/etc/systemd/system/multi-user.target.wants/mariadb.service' → '/usr/lib/systemd/system/mariadb.service'. Setting up libcgi-fast-perl (1:2.17-1) ... Processing triggers for man-db (2.13.1-1) ... Processing triggers for libc-bin (2.41-12+deb13u4) ... root@ns100:~#
Setelah selesai, jalankan skrip keamanan bawaan untuk mengatur password root, menghapus user anonim, dan memblokir akses root melalui remote
root@ns100:~# mariadb-secure-installation
Ikuti petunjuk di layar komputer Anda. Sangat disarankan untuk menjawab Y (Yes / Ya) pada semua pilihan yang ada.
NOTE: MariaDB is secure by default in Debian. Running this script is
useless at best, and misleading at worst. This script will be
removed in a future MariaDB release in Debian. Please read
/usr/share/doc/mariadb-server/README.Debian.gz for details.
Enter root user password or leave blank: [Tekan Enter]
Enter current password for root (enter for none): [Tekan Enter]
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password: root12345
Re-enter new password: root12345
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
- Removing privileges on test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
root@ns100:~#
Langkah 4: Instal PHP dan Ekstensi yang Diperlukan
Debian 13 menyediakan versi PHP 8.4 secara bawaan. Instal PHP beserta ekstensi dasar yang dibutuhkan oleh Apache dan phpMyAdmin:
root@ns100:~# apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-curl php-zip -y Installing: libapache2-mod-php php php-curl php-mbstring php-mysql php-xml php-zip Installing dependencies: libapache2-mod-php8.4 libsodium23 php-common php8.4-common php8.4-mysql php8.4-xml libargon2-1 libxslt1.1 php8.4 php8.4-curl php8.4-opcache php8.4-zip libonig5 libzip5 php8.4-cli php8.4-mbstring php8.4-readline Suggested packages: php-pear Summary: Upgrading: 0, Installing: 24, Removing: 0, Not Upgrading: 0 Download size: 6,904 kB Space needed: 30.5 MB / 16.7 GB available Get:1 http://10.10.129.20/debian trixie/main amd64 php-common all 2:96 [13.3 kB] Get:2 http://10.10.129.20/debian trixie/main amd64 php8.4-common amd64 8.4.24-1~deb13u1 [776 kB] Get:3 http://10.10.129.20/debian trixie/main amd64 php8.4-opcache amd64 8.4.24-1~deb13u1 [470 kB] Get:4 http://10.10.129.20/debian trixie/main amd64 php8.4-readline amd64 8.4.24-1~deb13u1 [12.7 kB] Setting up php8.4 (8.4.24-1~deb13u1) ... Setting up php (2:8.4+96) ... Processing triggers for man-db (2.13.1-1) ... Processing triggers for libc-bin (2.41-12+deb13u4) ... Processing triggers for php8.4-cli (8.4.24-1~deb13u1) ... Processing triggers for libapache2-mod-php8.4 (8.4.24-1~deb13u1) ... root@ns100:~#
Langkah 5: Instal phpMyAdmin menggunakan APT
root@ns100:~# apt install phpmyadmin -y Installing: phpmyadmin Installing dependencies: dbconfig-common libjs-jquery-metadata php-nikic-fast-route dbconfig-mysql libjs-jquery-mousewheel php-phpmyadmin-motranslator fontconfig-config libjs-jquery-tablesorter php-phpmyadmin-shapefile fonts-dejavu-core libjs-jquery-timepicker php-phpmyadmin-sql-parser fonts-dejavu-mono libjs-jquery-ui php-psr-cache icc-profiles-free libjs-sphinxdoc php-psr-container javascript-common libjs-underscore php-psr-http-factory libabsl20240722 liblerc4 php-psr-http-message libaom3 libmcrypt4 php-psr-log libavif16 librav1e0.7 php-slim-psr7 libdav1d7 libsharpyuv0 php-symfony-cache libde265-0 libsvtav1enc2 php-symfony-cache-contracts libdeflate0 libtiff6 php-symfony-config libfontconfig1 libwebp7 php-symfony-dependency-injection libgav1-1 libx265-215 php-symfony-deprecation-contracts libgd3 libxpm4 php-symfony-expression-language libheif-plugin-aomenc libyuv0 php-symfony-filesystem libheif-plugin-dav1d node-popper2 php-symfony-service-contracts libheif-plugin-libde265 php-bcmath php-symfony-var-exporter libheif-plugin-x265 php-bz2 php-tcpdf libheif1 php-composer-ca-bundle php-twig libimagequant0 php-fig-http-message-util php-twig-i18n-extension libjbig0 php-gd php-webmozart-assert libjpeg62-turbo php-getallheaders php8.4-bcmath libjs-bootstrap5 php-google-recaptcha php8.4-bz2 libjs-codemirror php-mariadb-mysql-kbs php8.4-gd libjs-jquery php-mcrypt php8.4-mcrypt Suggested packages: libgd-tools libheif-plugin-rav1e mcrypt php-gd2 libheif-plugin-ffmpegdec libheif-plugin-svtenc php-apcu php-pragmarx-google2fa-qrcode libheif-plugin-jpegdec bootstrap-icons php-dbase php-bacon-qr-code libheif-plugin-jpegenc libjs-bootstrap5-doc php-imagick php-code-lts-u2f-php-server libheif-plugin-j2kdec libjs-requirejs php-twig-doc libheif-plugin-j2kenc libjs-jquery-ui-docs php-recode libheif-plugin-kvazaar libmcrypt-dev www-browser Summary: Upgrading: 0, Installing: 82, Removing: 0, Not Upgrading: 0 Download size: 29.3 MB Space needed: 142 MB / 16.6 GB available Get:1 http://10.10.129.20/debian trixie/main amd64 libmcrypt4 amd64 2.5.8-8 [72.2 kB] Get:2 http://10.10.129.20/debian trixie/main amd64 php8.4-mcrypt amd64 3:1.0.7-5 [16.6 kB] Get:3 http://10.10.129.20/debian trixie/main amd64 php-mcrypt all 3:1.0.7-5 [3,776 B] ...
Selama proses instalasi berjalan, manajer paket akan menampilkan beberapa layar konfigurasi interaktif:

Web server selection (Pilihan server web): Tekan tombol spasi untuk menandai pilihan [*] apache2, lalu tekan tombol Tab dan pilih Enter.
Configure database for phpmyadmin with dbconfig-common? Pilih Yes.
phpMyAdmin application password: Masukkan kata sandi baru khusus untuk penggunaan internal database phpMyAdmin, atau kosongkan saja untuk membuat kata sandi acak otomatis.
Langkah 6: Konfigurasi Akhir & Pengujian
Muat ulang (restart) server web Apache untuk menerapkan semua modul PHP dan konfigurasi otomatis dari phpMyAdmin
root@ns100:~# /etc/init.d/apache2 restart
Restarting apache2 (via systemctl): apache2.service.
root@ns100:~#

Solusi Masalah Login Root MariaDB
Secara bawaan, instalasi MariaDB versi modern menggunakan plugin keamanan unix_socket untuk akun root. Fitur keamanan ini menyebabkan Anda tidak bisa login ke phpMyAdmin secara langsung menggunakan pengguna root dan kata sandi root sistem.
Untuk mengatasinya, Anda harus membuat pengguna administratif baru khusus untuk mengelola database di phpMyAdmin:
root@ns100:~# mariadb -u root -p Enter password: root12345 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 76 Server version: 11.8.6-MariaDB-0+deb13u1 from Debian -- Please help get to 10k stars at https://github.com/MariaDB/Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> CREATE USER 'adminuser'@'localhost' IDENTIFIED BY 'strong_password'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> EXIT; Bye root@ns100:~#
Sekarang, Anda sudah bisa menggunakan nama pengguna adminuser dan kata sandi yang telah dibuat tersebut untuk masuk (login) ke halaman web phpMyAdmin.


Sumber : https://partner.biznetgio.com/apa-itu-database-server-fungsi-cara-kerja-jenis-dan-contohnya/