Daftar isi
Banyak pemilik server yang melihat tab Databases tapi tidak tahu fungsinya. Padahal database adalah tempat paling aman untuk menyimpan data aplikasi yang harus awet, seperti akun pengguna, saldo, poin, atau daftar produk. Di panduan ini kamu belajar apa itu database, kapan kamu butuh, dan cara memakainya dari nol sampai tersambung ke aplikasimu.
Apa itu database
Bayangkan database sebagai lemari arsip yang rapi: datanya tersusun dalam tabel (seperti lembar spreadsheet) dan bisa dicari, diubah, dan dihitung dengan cepat. Aplikasimu "bertanya" ke database setiap kali butuh data. Database di panel ini berjenis MySQL/MariaDB.
Kapan kamu butuh database
- Butuh: website dengan login pengguna, toko online, bot yang menyimpan data banyak orang (saldo, level, pengaturan tiap grup), atau aplikasi apa pun yang datanya tidak boleh hilang saat server restart.
- Tidak butuh: bot sederhana yang hanya membalas pesan, atau aplikasi yang datanya sedikit dan cukup disimpan di file.
Cek kuota database paketmu
Jumlah database mengikuti paketmu (angka DATABASE di lembar paket). Di tab Databases, panel menampilkan sudah berapa yang terpakai. Kalau kuotanya 0 atau sudah penuh, tombol untuk membuat database tidak tersedia. Kuota bisa ditambah saat memesan lewat tombol + di bagian Tampilkan lebih banyak.
Langkah 1: Buat database
- Login ke panel, buka servermu, lalu tab Databases.
- Ketuk New Database (atau Create Database).
- Isi Database Name dengan nama pendek yang jelas, misalnya
tokobot. Panel menambahkan awalan otomatis di depannya, misalnyas125_tokobot. - Kolom Connections From biarkan kosong. Mengubahnya tidak membuka akses dari luar. Aturan akses dari luar dijelaskan di bagian Menyambung dari komputer sendiri.
- Ketuk Create Database. Panel membuat database, username, dan password secara otomatis.

Langkah 2: Baca detail koneksi
Ketuk database yang baru dibuat (atau ikon mata di sampingnya). Muncul jendela Database connection details berisi:
| Kolom | Artinya |
|---|---|
| Endpoint | Alamat database dalam format host:port. Contoh: db.contoh.com:3306 |
| Connections From | Dari mana koneksi diizinkan |
| Username | Akun untuk masuk ke database |
| Password | Kata sandi database. Ketuk atau salin untuk memakainya |
| JDBC Connection String | Semua detail di atas dalam satu baris. Ini yang paling sering dipakai |
Dari contoh Endpoint db.contoh.com:3306: host adalah db.contoh.com dan port adalah 3306. Tombol Rotate password di bagian bawah membuat password baru (lihat bagian Rotate password di bawah).

Jangan menulis
localhostsebagai host. Database berada di mesin yang berbeda dari servermu. Selalu pakai Endpoint atau connection string yang tampil di panel.
Langkah 3: Pahami connection string
Hampir semua project yang kamu temui tidak menulis host, port, username, dan password satu per satu. Mereka memakai satu baris URL yang berisi semuanya, namanya connection string. Panel sudah menyiapkannya di kolom JDBC Connection String. Contohnya:
jdbc:mysql://u125_AbCdEfGhIj:[email protected]:3306/s125_tokobotKalau dipecah, isinya:
| Bagian | Contoh | Artinya |
|---|---|---|
jdbc: | jdbc: | Awalan khas Java. Aplikasi Node.js dan kebanyakan bahasa lain tidak memakainya |
mysql:// | mysql:// | Jenis databasenya |
| username | u125_AbCdEfGhIj | Akun database |
| password | PasswordKamu | Kata sandi database, setelah tanda : |
| host | db.contoh.com | Alamat database, setelah tanda @ |
| port | 3306 | Nomor pintu database |
| nama database | s125_tokobot | Database yang dipakai, setelah tanda / |
Cara memakainya: salin string dari panel, lalu hapus tulisan jdbc: di depannya. Hasilnya:
mysql://u125_AbCdEfGhIj:[email protected]:3306/s125_tokobotItu yang dimasukkan ke aplikasimu. Password di dalam string dari panel sudah dikodekan otomatis, jadi password yang punya simbol seperti @, #, atau / tetap aman. Salin langsung dari panel, jangan merangkai sendiri.
Jaga kerahasiaannya. Connection string memuat password. Jangan dikirim ke orang lain, jangan di-screenshot tanpa disensor, dan jangan diunggah ke GitHub.
Langkah 4: Sambungkan ke aplikasi Node.js
Contoh ini memakai paket mysql2 dan dotenv.
- Tambahkan dua paket itu ke
package.jsonbagian"dependencies"(misalnya"mysql2": "^3.11.0"dan"dotenv": "^16.4.5"), lalu upload. Panel memasangnya saat server menyala. Kalau munculCannot find module, lihat Mengatasi error "Cannot find module". - Buat atau edit file
.envdi tab Files, lalu isi dengan connection string tadi (tanpajdbc:dan tanpa spasi di sekitar tanda=):
DATABASE_URL=mysql://u125_AbCdEfGhIj:[email protected]:3306/s125_tokobot- Buat file
tes-db.jsdengan isi berikut untuk menguji koneksi:
require('dotenv').config()
const mysql = require('mysql2/promise')
async function main() {
const db = await mysql.createConnection(process.env.DATABASE_URL)
const [rows] = await db.query('SELECT 1 + 1 AS hasil')
console.log('Koneksi berhasil, hasil:', rows[0].hasil)
await db.end()
}
main().catch((err) => {
console.error('Koneksi gagal:', err.message)
process.exit(1)
})- Ubah file utama di tab Startup menjadi
tes-db.js(kalau di PterokuDesu ubah isi COMMAND RUN jadinode test-db.js) sementara, lalu klik Start. Kalau berhasil, konsol menampilkanKoneksi berhasil, hasil: 2. Setelah itu kembalikan file utama ke file bot atau aplikasimu.

Kalau memakai Prisma atau library lain
Library yang meminta satu URL (Prisma, Sequelize, dan sejenisnya) memakai string yang sama. Untuk Prisma, isi datasource di schema.prisma seperti ini:
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}Kalau library-mu hanya menerima kolom terpisah, ambil host, port, username, password, dan nama database dari tabel di Langkah 2.
Menyambung dari komputer sendiri
Database di panel ini tidak dibuka untuk seluruh internet demi keamanan. Koneksi hanya diterima dari dalam servermu sendiri. Karena itu, kalau kamu mencoba menyambung dari komputermu lewat DBeaver, HeidiSQL, atau MySQL Workbench, koneksinya gagal (misalnya TcpTestSucceeded : False). Itu normal, bukan error di komputermu.
Ada dua cara untuk mengelola isi database tanpa membuka akses:
- phpMyAdmin (paling mudah). Buka pma.pterokudesu.com, lalu login memakai Username dan Password database dari jendela detail koneksi. Dari sana kamu bisa melihat tabel, menjalankan perintah SQL, mengimpor, dan mengekspor.
- Minta bantuan kami. Kalau kebutuhanmu tidak cukup lewat phpMyAdmin, misalnya mengimpor file yang sangat besar, hubungi kami dan kirim ID transaksi serta IP publik komputermu (cek di whatismyip.com). Kami bisa membukakan akses sementara untuk IP itu. Kalau IP-mu berubah, aksesnya perlu didaftarkan ulang, dan akses dicabut setelah selesai.
Mengimpor dan mengekspor data lewat phpMyAdmin
Mengimpor (misalnya memasukkan file .sql dari backup lamamu):
- Buka phpMyAdmin dan login.
- Pilih database milikmu di daftar sebelah kiri.
- Buka tab Import.
- Ketuk Choose File, pilih file
.sqldari komputermu. - Gulir ke bawah, lalu ketuk Import. Tunggu sampai muncul pesan berhasil.
Mengekspor (untuk menyimpan salinan isi databasemu):
- Pilih databasemu di daftar sebelah kiri.
- Buka tab Export.
- Biarkan metode Quick dan format SQL, lalu ketuk Export. File
.sqlterunduh ke komputermu.
Kalau impor gagal karena filenya terlalu besar, hubungi kami lewat halaman Kontak.

Rotate password
Gunakan Rotate password di jendela detail kalau passwordnya bocor atau setelah ada orang lain yang pernah mengaksesnya (misalnya setelah sub user selesai bekerja). Password lama langsung tidak berlaku. Segera salin connection string yang baru, ganti isi DATABASE_URL di .env, lalu restart server.
Menghapus database
Pilih menu pada database, lalu Delete. Semua isinya hilang permanen. Pastikan kamu sudah mengekspor datanya kalau masih diperlukan.
Backup database
Backup di tab Backups hanya menyimpan file server, bukan isi database. Untuk menyimpan isinya, ekspor lewat phpMyAdmin seperti langkah di atas, lalu simpan filenya di komputermu. Panduan backup server ada di Backup dan database.
Error yang sering muncul
| Pesan atau gejala | Penyebab | Solusi |
|---|---|---|
Access denied for user | Username atau password salah, atau password sudah di-rotate | Salin ulang connection string dari panel dan perbarui .env |
ENOTFOUND atau ECONNREFUSED | Host atau port salah, atau memakai localhost | Pakai connection string dari panel, jangan localhost |
Unknown database | Nama database tidak sama | Pakai nama lengkap yang tertera di panel, termasuk awalannya |
Invalid URL atau URL tidak dikenali | Awalan jdbc: belum dihapus | Hapus jdbc: sehingga URL diawali mysql:// |
Koneksi dari komputer timeout atau TcpTestSucceeded : False | Akses dari luar memang tidak dibuka | Pakai phpMyAdmin atau hubungi kami |
| Tombol New Database tidak ada | Kuota database habis | Tambah kuota saat memesan atau hapus database yang tidak dipakai |
Cannot find module 'mysql2' | Paket belum terpasang | Tambahkan ke package.json lalu restart |
Apakah artikel ini membantu?