Banner - Cara Install dan Konfigurasi ProxySQL di Debian Server

Cara Install dan Konfigurasi ProxySQL di Debian Server

Ketika jumlah pengguna aplikasi terus bertambah, beban kerja database juga akan meningkat. Pada kondisi seperti ini, ProxySQL menjadi salah satu solusi yang banyak digunakan untuk mengelola koneksi database, membagi beban query, serta meningkatkan ketersediaan layanan tanpa harus mengubah logika aplikasi secara langsung.

Meskipun banyak administrator telah menerapkan database replication atau database cluster, aplikasi tetap membutuhkan mekanisme untuk menentukan server mana yang menangani proses read dan write. Jika seluruh pengaturan tersebut dilakukan di dalam kode aplikasi, proses pengelolaan akan menjadi lebih rumit, terutama ketika infrastruktur database terus berkembang.

Melalui ProxySQL, proses read/write splitting, load balancing, hingga failover dapat dilakukan secara lebih mudah karena seluruh pengaturan berada di satu lapisan proxy. Pada artikel ini, Anda akan mempelajari cara install dan konfigurasi ProxySQL di Debian Server, mulai dari proses instalasi hingga konfigurasi dasar agar siap digunakan pada lingkungan database replication.

Apa Itu ProxySQL?

ProxySQL adalah open-source high-performance database proxy yang dirancang khusus untuk MySQL dan variannya (seperti MariaDB dan Percona Server). ProxySQL bekerja sebagai layer penengah yang berada di antara aplikasi website dan server cluster database.

proxysql concept

Dengan ProxySQL, aplikasi Kita hanya perlu terhubung ke satu titik (yaitu IP/Port milik ProxySQL). Selanjutnya, ProxySQL yang akan menentukan ke mana query tersebut harus diarahkan secara otomatis berdasarkan rules yang sudah Kita tentukan sebelumya.

Kelebihan dan Kekurangan ProxySQL

Sebelum mengimplementasikannya di lingkungan produksi, penting untuk memahami nilai plus dan minus dari ProxySQL :

Promo Hosting Murah Rumahweb

Kelebihan

  • High Performance & Low Overhead : Ditulis menggunakan C++, ProxySQL sanggup menangani puluhan ribu koneksi bersamaan (concurrent connections) dengan penggunaan resource yang sangat efisien.
  • Smart Query Routing (Read/Write Splitting) : Mengarahkan query SELECT ke server Replica (Slave) dan INSERT/UPDATE/DELETE ke server Primary (Master) secara otomatis tanpa mengubah kode aplikasi.
  • Query Caching : Memiliki fitur caching bawaan di memori, sehingga query yang sering dipanggil tidak perlu membebankan server database utama.
  • Connection Pooling : Mengurangi beban pembuatan dan penutupan koneksi berulang kali (overhead connection) antara aplikasi dan database.
  • Zero-Downtime Configuration : Konfigurasinya disimpan di basis data SQLite internal. Kita dapat mengubah rule atau menambahkan server baru secara live tanpa perlu melakukan restart service.
  • Query Firewall & Throttling : Dapat memblokir query berbahaya atau membatasi query lambat (slow query) sebelum menyentuh server database.

Kekurangan

  • Learning Curve : Memahami arsitektur internal ProxySQL (seperti konsep Memory, Disk, Runtime, Admin Port) membutuhkan pemahaman teknis tersendiri dan cukup sulit.
  • Single Point of Failure (SPOF) : Jika ProxySQL dipasang di server tunggal tanpa mekanisme High Availability (seperti Keepalived/VRRP), matinya ProxySQL akan membuat seluruh koneksi ke database terputus.

Contoh Use Case Penggunaan ProxySQL

Kapan sebaiknya Kita menggunakan ProxySQL pada infrastruktur Server VPS? Berikut beberapa skenario umumnya :

  1. Aplikasi E-Commerce atau Portal Berita Berantrean Tinggi :
    Sistem yang memiliki rasio Read jauh lebih tinggi dibandingkan Write. ProxySQL dapat membagi beban bacaan ke beberapa server Replica (Read Replicas).
  2. Migrasi Database Tanpa Downtime :
    Ketika Kita ingin memindahkan data ke server database baru, Kita cukup mengubah target backend di dalam ProxySQL tanpa perlu deploy ulang atau mengubah file .env aplikasi.
  3. Mencegah Server Down Akibat Slow Query :
    Jika ada query tertentu yang membuat CPU usage server database melonjak 100%, Kita dapat membuat rule di ProxySQL untuk menahan atau memberi cache pada query tersebut secara langsung.

System Requirements

Sebelum melakukan instalasi, pastikan bahwa server Anda telah memenuhi system requirements berikut ini.

  • OS : Debian Based (Debian 12/13) atau (Ubuntu 22/24) (64-bit)
  • CPU : 2 core atau lebih
  • RAM : Minimal 1 GB (2 GB direkomendasikan)
  • Disk: Minimal 10 GB (SSD sangat direkomendasikan)

Informasi kebutuhan sistem di atas update tertanggal 27 Juli 2026.

Cara Install dan Konfigurasi ProxySQL di Debian Server

Dalam panduan ini, kami menggunakan layanan VPS KVM paket L dari Rumahweb Indonesia. Selain itu, kami menggunakan OS Debian 12 (Bookworm). Berikut cara install dan konfigurasi ProxySQL di debian.

Step 1. Tambahkan Repository dan Install ProxySQL

ProxySQL menyediakan repository resmi agar Kita mendapatkan versi stabil terbaru.

  1. Buka terminal VPS Debian 12, lalu perbarui package list dan install dependensi awal.
sudo apt update && sudo apt install -y lsb-release gnupg2 curl ca-certificates 
dependency install proxysql
  1. Unduh GPG key resmi ProxySQL dan tambahkan repository untuk Debian.
curl -fsSL https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/proxysql.gpg echo "deb https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/$(lsb_release -sc)/ ./" | sudo tee /etc/apt/sources.list.d/proxysql.list 
proxysql repo
  1. Perbarui daftar paket dan install ProxySQL beserta MariaDB Client (untuk kebutuhan management interface)
sudo apt update 
sudo apt install proxysql mariadb-client -y
proxysql installation
  1. Aktifkan service agar otomatis berjalan saat VPS reboot, lalu pastikan statusnya sudah aktif
sudo systemctl enable --now proxysql 
sudo systemctl status proxysql
proxysql status

Step 2. Masuk ke Interface Admin ProxySQL

ProxySQL dikelola menggunakan protokol MySQL melalui port khusus (6032 untuk Admin Interface, dan 6033 untuk jalur lalu lintas data aplikasi).

Login ke admin interface menggunakan kredensial default (admin/admin): 

admin proxysql login

Step 3. Mendaftarkan Server Database (Backend)

Skenario contoh :

  • Master (Write): IP 192.168.1.10 (Hostgroup 10)
  • Slave (Read): IP 192.168.1.11 (Hostgroup 20)

Jalankan perintah berikut di dalam prompt ProxySQL Admin :

-- Tambahkan Server Master 
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (10, '192.168.1.10', 3306); 

-- Tambahkan Server Slave 
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (20, '192.168.1.11', 3306); 

-- Simpan konfigurasi ke Runtime dan Disk
LOAD MYSQL SERVERS TO RUNTIME; 
SAVE MYSQL SERVERS TO DISK;
backendb proxysql

Step 4. Menambahkan User Database ke ProxySQL

User yang terdaftar di ProxySQL harus sama dengan user yang ada di server MySQL/MariaDB backend Kita.

-- Tambahkan user 'app_user' dengan password 'password_db_anda' 
INSERT INTO mysql_users (username, password, default_hostgroup) VALUES ('app_user', 'password_db_anda', 10); 

-- Simpan konfigurasi
LOAD MYSQL USERS TO RUNTIME; 
SAVE MYSQL USERS TO DISK;
proxysql add user

Step 5. Mengatur Query Routing (Read/Write Splitting)

Buat aturan (rules) agar semua query SELECT diarahkan ke Hostgroup 20 (Slave), sedangkan query modifikasi data (INSERT, UPDATE, DELETE) secara otomatis masuk ke Hostgroup 10 (Master).

-- Rule 1: Arahkan semua query SELECT ... FOR UPDATE ke Master (Hostgroup 10) INSERT INTO mysql_query_rules (rule_id, active, match_pattern, destination_hostgroup, apply) VALUES (1, 1, '^SELECT.*FOR UPDATE$', 10, 1); 

-- Rule 2: Arahkan semua query SELECT biasa ke Slave (Hostgroup 20) 
INSERT INTO mysql_query_rules (rule_id, active, match_pattern, destination_hostgroup, apply) VALUES (2, 1, '^SELECT', 20, 1);

 -- Simpan konfigurasi 
LOAD MYSQL QUERY RULES TO RUNTIME; 
SAVE MYSQL QUERY RULES TO DISK;
proxysql routing readwrite

Step 6. Pengujian Koneksi dari Aplikasi

Di sisi konfigurasi aplikasi (misalnya pada file .env Laravel atau wp-config.php WordPress), arahkan koneksi database ke alamat ProxySQL :

  • DB_HOST: 127.0.0.1 (atau IP VPS Debian tempat ProxySQL terinstall)
  • DB_PORT: 6033 (Port trafik ProxySQL)
  • DB_USER: app_user
  • DB_PASS: password_db_anda

Uji koneksi melalui terminal untuk memastikan routing berjalan lancar :

mysql -u app_user -ppassword_db_anda -h 127.0.0.1 -P 6033 -e "SELECT @@hostname;" 

FAQ

Berikut adalah beberapa pertanyaan popular tentang ProxySQL.

Apakah ProxySQL wajib digunakan pada database replication?

Tidak. Database replication tetap dapat berjalan tanpa ProxySQL. Namun, ProxySQL memudahkan pengelolaan koneksi database dengan menyediakan fitur seperti read/write splitting, load balancing, dan failover, sehingga aplikasi tidak perlu mengatur logika tersebut secara langsung.


Apakah ProxySQL hanya dapat digunakan pada MySQL?

ProxySQL dirancang khusus untuk MySQL, MariaDB, dan database yang kompatibel dengan protokol MySQL. Oleh karena itu, ProxySQL tidak dapat digunakan secara langsung untuk PostgreSQL maupun database lainnya.


Apakah ProxySQL memengaruhi performa aplikasi?

Ya, justru dapat meningkatkan performa apabila dikonfigurasi dengan benar. ProxySQL mampu mendistribusikan beban query ke beberapa server database sehingga beban pada server utama menjadi lebih ringan dan waktu respons aplikasi dapat meningkat.


Apakah ProxySQL cocok digunakan pada server kecil?

Bisa. ProxySQL dapat digunakan mulai dari lingkungan pengembangan hingga server production. Namun, manfaatnya akan lebih terasa pada aplikasi dengan traffic tinggi atau yang telah menggunakan beberapa server database.


Penutup

ProxySQL adalah solusi database proxy yang dapat membantu mengelola koneksi database secara lebih efisien melalui fitur load balancing, read/write splitting, dan failover. Dengan menerapkan ProxySQL, aplikasi tidak lagi perlu menangani logika distribusi query secara langsung sehingga pengelolaan infrastruktur database menjadi lebih sederhana dan mudah dikembangkan.

Apabila implementasi ProxySQL akan digunakan pada lingkungan production, pastikan server memiliki resource yang memadai agar performanya tetap optimal. Rumahweb menyediakan berbagai pilihan layanan VPS dan Dedicated Server yang dapat digunakan untuk membangun infrastruktur database yang stabil, aman, dan siap menangani kebutuhan aplikasi berskala besar.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Andika Dwi Setyawan

Andika Dwi Setyawan, atau yang akrab disapa Andika, adalah seorang System Administrator di Rumahweb dengan passion mendalam di dunia teknologi cloud. Berbekal pengalaman mengelola infrastruktur berbasis Linux hingga Kubernetes, Andika ingin berbagi panduan konfigurasi server yang tidak hanya teknis, tetapi juga praktis, membantu banyak orang dalam mengoptimalkan performa dan keamanan infrastruktur digital.