by Zass Desuta

Bantuan

Cara Membuat dan Memakai Database MySQL di Panel Pterodactyl untuk Pemula

Apa itu database, kapan kamu butuh, cara membuatnya di tab Databases, membaca detail koneksi, dan menyambungkannya ke aplikasi Node.js. Termasuk rotate password dan backup.

Tim PterokuDesu7 menit baca

Bagikan
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

  1. Login ke panel, buka servermu, lalu tab Databases.
  2. Ketuk New Database (atau Create Database).
  3. Isi Database Name dengan nama pendek yang jelas, misalnya tokobot. Panel menambahkan awalan otomatis di depannya, misalnya s125_tokobot.
  4. Kolom Connections From biarkan kosong. Mengubahnya tidak membuka akses dari luar. Aturan akses dari luar dijelaskan di bagian Menyambung dari komputer sendiri.
  5. Ketuk Create Database. Panel membuat database, username, dan password secara otomatis.

gambar

Langkah 2: Baca detail koneksi

Ketuk database yang baru dibuat (atau ikon mata di sampingnya). Muncul jendela Database connection details berisi:

KolomArtinya
EndpointAlamat database dalam format host:port. Contoh: db.contoh.com:3306
Connections FromDari mana koneksi diizinkan
UsernameAkun untuk masuk ke database
PasswordKata sandi database. Ketuk atau salin untuk memakainya
JDBC Connection StringSemua 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).

gambar

Jangan menulis localhost sebagai 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:

Teks
jdbc:mysql://u125_AbCdEfGhIj:[email protected]:3306/s125_tokobot

Kalau dipecah, isinya:

BagianContohArtinya
jdbc:jdbc:Awalan khas Java. Aplikasi Node.js dan kebanyakan bahasa lain tidak memakainya
mysql://mysql://Jenis databasenya
usernameu125_AbCdEfGhIjAkun database
passwordPasswordKamuKata sandi database, setelah tanda :
hostdb.contoh.comAlamat database, setelah tanda @
port3306Nomor pintu database
nama databases125_tokobotDatabase yang dipakai, setelah tanda /

Cara memakainya: salin string dari panel, lalu hapus tulisan jdbc: di depannya. Hasilnya:

Teks
mysql://u125_AbCdEfGhIj:[email protected]:3306/s125_tokobot

Itu 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.

  1. Tambahkan dua paket itu ke package.json bagian "dependencies" (misalnya "mysql2": "^3.11.0" dan "dotenv": "^16.4.5"), lalu upload. Panel memasangnya saat server menyala. Kalau muncul Cannot find module, lihat Mengatasi error "Cannot find module".
  2. Buat atau edit file .env di tab Files, lalu isi dengan connection string tadi (tanpa jdbc: dan tanpa spasi di sekitar tanda =):
Teks
DATABASE_URL=mysql://u125_AbCdEfGhIj:[email protected]:3306/s125_tokobot
  1. Buat file tes-db.js dengan isi berikut untuk menguji koneksi:
JavaScript
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)
})
  1. Ubah file utama di tab Startup menjadi tes-db.js (kalau di PterokuDesu ubah isi COMMAND RUN jadi node test-db.js) sementara, lalu klik Start. Kalau berhasil, konsol menampilkan Koneksi berhasil, hasil: 2. Setelah itu kembalikan file utama ke file bot atau aplikasimu.

gambar

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:

Teks
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:

  1. 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.
  2. 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):

  1. Buka phpMyAdmin dan login.
  2. Pilih database milikmu di daftar sebelah kiri.
  3. Buka tab Import.
  4. Ketuk Choose File, pilih file .sql dari komputermu.
  5. Gulir ke bawah, lalu ketuk Import. Tunggu sampai muncul pesan berhasil.

Mengekspor (untuk menyimpan salinan isi databasemu):

  1. Pilih databasemu di daftar sebelah kiri.
  2. Buka tab Export.
  3. Biarkan metode Quick dan format SQL, lalu ketuk Export. File .sql terunduh ke komputermu.

Kalau impor gagal karena filenya terlalu besar, hubungi kami lewat halaman Kontak.

gambar

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 gejalaPenyebabSolusi
Access denied for userUsername atau password salah, atau password sudah di-rotateSalin ulang connection string dari panel dan perbarui .env
ENOTFOUND atau ECONNREFUSEDHost atau port salah, atau memakai localhostPakai connection string dari panel, jangan localhost
Unknown databaseNama database tidak samaPakai nama lengkap yang tertera di panel, termasuk awalannya
Invalid URL atau URL tidak dikenaliAwalan jdbc: belum dihapusHapus jdbc: sehingga URL diawali mysql://
Koneksi dari komputer timeout atau TcpTestSucceeded : FalseAkses dari luar memang tidak dibukaPakai phpMyAdmin atau hubungi kami
Tombol New Database tidak adaKuota database habisTambah kuota saat memesan atau hapus database yang tidak dipakai
Cannot find module 'mysql2'Paket belum terpasangTambahkan ke package.json lalu restart

Apakah artikel ini membantu?

Artikel Terkait

Hubungi kami