Agar database mysql bisa diakses dari luar

3.Masukkan ip public yang digunakan,jika tidak tahu,silahkan cek di ipku.citrahost.com,ip publik adalah ip internet anda atau ip webhosting anda

Agar database mysql bisa diakses dari luar

4.Klik add host

Untuk setingan di user seperti berikut

Host name = (use the server IP address)
Database name = (cpanelUsername_databaseName)
Database username = (cpanelUsername_databaseUsername)
Database password = (password database)

Baca Juga :   Perbedaan Antara MySql dengan MariaDB

untuk ip server di ketahui dengan melihat Shared IP Address pada bagian

Agar database mysql bisa diakses dari luar

Kalau biasanya kita mengelola database MySQL dari localhost dalam VPS lewat SSH maka ada kalanya kita perlu mengaksesnya dari luar server, istilahnya remote access. Mungkin diperlukan untuk sekedar mengakses MySQL dari lokasi yang terpercaya atau memang VPS tadi adalah didedikasikan sebagai database server. Apapun alasan anda caranya sama kok. 🙂

Langsung saja ya, pertama kita perlu mengedit file konfigurasi MySQL. Jadi jalankan perintah berikut:

nano /etc/mysql/my.cnf

Geser kebawah sampai anda menemukan bagian [mysqld] dan hilangkan simbol komentar (#) di awal kode – kode dibawah:

bind-address        = 127.0.0.1    
bind-address        = 192.168.8.18

Dimana baris pertama adalah setting agar kita bisa masuk ke MySQL dari localhost dan baris kedua menentukan alamat IP servernya.

Setelah itu mari kita berikan hak akses user MySQL agar bisa terhubung dari luar VPSnya:

GRANT ALL PRIVILEGES ON *.* TO 'nama_user'@'%' IDENTIFIED BY 'kata_sandi' WITH GRANT OPTION;

Saya jelaskan dulu beberapa bagian:

  • nama_user merupakan username MySQL yang anda ingin gunakan untuk remote access databasenya.
  • % fungsinya sebagai wildcard, jadi semua alamat IP yang berusaha tersambung akan diijinkan. Ini sebenarnya tidak aman, saya anjurkan kalau anda memiliki alamat IP statis ganti ke alamat IP anda.
  • kata_sandi pastinya adalah password user diatas.

Setelah itu restart MySQL

service mysql restart

Anda bisa mencoba membuka koneksi ke VPS tersebut dengan eksekusi perintah berikut:

mysql -u nama_user -h 192.168.8.18 -p

Kalau gagal harap anda cek setting firewall di VPS asal dan VPS tujuan, kadang diblokir port default MySQL (

bind-address        = 127.0.0.1    
bind-address        = 192.168.8.18
0) kalau tidak dikenali dalam aturannya.

Beranda Programming MySQL Konfigurasi Remote Connections ke MySQL Database Server

  • Programming
  • MySQL
Konfigurasi Remote Connections ke MySQL Database Server

Secara default, MySQL server hanya listens koneksi dari localhost, yang berarti hanya dapat diakses oleh aplikasi yang berjalan di host yang sama.

Namun, dalam beberapa situasi, perlu untuk mengakses MySQL server dari lokasi yang jauh. Misalnya, ketika Anda ingin terhubung ke MySQL server jarak jauh dari sistem lokal Anda, atau ketika menggunakan deployment multi-server, di mana aplikasi berjalan pada mesin yang berbeda dari server database.

Satu opsi adalah mengakses MySQL server melalui SSH Tunnel atau mengkonfigurasi MySQL server untuk menerima koneksi jarak jauh.

Dalam panduan ini, kita akan melalui langkah-langkah yang diperlukan untuk memungkinkan koneksi jarak jauh ke MySQL server. Instruksi yang sama berlaku untuk MariaDB.

Mengkonfigurasi MySQL Server

Langkah pertama adalah mengatur MySQL server untuk listen  pada alamat IP tertentu atau semua alamat IP pada mesin.

Jika MySQL server dan client dapat berkomunikasi satu sama lain melalui private network, maka opsi terbaik adalah mengatur MySQL server untuk hanya listen pada Private IP. Jika tidak, jika Anda ingin terhubung ke server melalui jaringan publik, atur MySQL server untuk listen pada semua alamat IP pada mesin.

Untuk melakukannya, Anda perlu mengedit file konfigurasi MySQL dan menambah atau mengubah nilai opsi

bind-address           = 0.0.0.0
# skip-networking
7. Anda dapat mengatur satu alamat IP dan rentang IP. Jika alamatnya adalah
bind-address           = 0.0.0.0
# skip-networking
8, maka MySQL server akan menerima koneksi pada semua host interface IPv4. Jika Anda memiliki IPv6 yang dikonfigurasi pada sistem Anda, maka alih-alih
bind-address           = 0.0.0.0
# skip-networking
8, gunakan
sudo systemctl restart mysql
0.

Lokasi file konfigurasi MySQL berbeda tergantung pada distribusinya. Di Ubuntu dan Debian file tersebut terletak di

sudo systemctl restart mysql
1, sedangkan di distribusi berbasis Red Hat seperti CentOS, file tersebut berada di
sudo systemctl restart mysql
2.

Buka file dengan teks editor Anda:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Cari baris yang dimulai dengan

bind-address           = 0.0.0.0
# skip-networking
7 dan atur nilainya ke alamat IP yang didengarkan oleh MySQL server.

Secara default, nilainya diatur ke

sudo systemctl restart mysql
4 (hanya listens di localhost).

Dalam contoh ini, kami akan mengatur MySQL server untuk listen pada semua interface IPv4 dengan mengubah nilainya menjadi

bind-address           = 0.0.0.0
# skip-networking
8

bind-address           = 0.0.0.0
# skip-networking

Jika ada baris yang berisi

sudo systemctl restart mysql
6, hapus atau berikan komentar dengan menambahkan
sudo systemctl restart mysql
7 di awal baris.

Di MySQL 8.0 dan lebih tinggi, arahan

bind-address           = 0.0.0.0
# skip-networking
7 mungkin tidak ada. Dalam hal ini, tambahkan di bawah bagian
sudo systemctl restart mysql
9.

Setelah selesai, restart layanan MySQL agar perubahan diterapkan. Hanya root atau user dengan hak sudo yang dapat restart layanan.

Untuk memulai kembali MySQL service pada Debian atau Ubuntu, ketik:

sudo systemctl restart mysql

Pada distribusi berbasis RedHat seperti CentOS untuk restart service jalankan :

sudo systemctl restart mysqld

Memberikan Akses ke user dari Remote Machine

Langkah selanjutnya adalah memungkinkan akses ke database ke user jarak jauh.

Log in ke MySQL server sebagai root user dengan mengetik :

sudo mysql

Jika Anda menggunakan plugin native MySQL authentication, untuk masuk sebagai root jalankan perintah di bawah ini dan masukkan kata sandi ketika diminta:

mysql -u root -p

Dari dalam shell MySQL, gunakan pernyataan

sudo systemctl restart mysqld
0 untuk memberikan akses bagi user jarak jauh.

GRANT ALL ON nama_database.* TO [email protected]'ip_address' IDENTIFIED BY 'password_user_anda';

Dimana:

  • sudo systemctl restart mysqld
    1 adalah nama database yang akan disambungkan user .
  • sudo systemctl restart mysqld
    2 adalah nama dari user MySQL.
  • sudo systemctl restart mysqld
    3 adalah alamat IP dari mana user akan terhubung. Gunakan
    sudo systemctl restart mysqld
    4 untuk memungkinkan user terhubung dari alamat IP apa pun.
  • sudo systemctl restart mysqld
    5 adalah kata sandi user untuk masuk ke database.

Misalnya, untuk memberikan akses ke database

sudo systemctl restart mysqld
6 ke user bernama
sudo systemctl restart mysqld
7 dengan kata sandi
sudo systemctl restart mysqld
8 dari mesin klien dengan IP
sudo systemctl restart mysqld
9, maka perintah yang akan Anda jalankan:

GRANT ALL ON dbperusahaan.* TO [email protected]'10.10.0.5' IDENTIFIED BY '[email protected]';

Mengkonfigurasi Firewall

Langkah terakhir adalah mengonfigurasi firewall Anda untuk memungkinkan lalu lintas di port 3306 (port default MySQL) dari mesin jarak jauh.

Iptables

Jika Anda menggunakan iptables sebagai firewall Anda, perintah di bawah ini akan memungkinkan akses dari alamat IP apa pun di Internet ke port MySQL. Ini sangat tidak aman.

sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT

Izinkan akses dari alamat IP tertentu:

sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT

UFW

UFW adalah tool firewall default di Ubuntu. Untuk mengizinkan akses dari alamat IP apa pun di Internet (sangat tidak aman) jalankan:

bind-address           = 0.0.0.0
# skip-networking
0

Izinkan akses dari alamat IP tertentu:

bind-address           = 0.0.0.0
# skip-networking
1

FirewallD

FirewallD adalah alat manajemen firewall default di CentOS. Untuk mengizinkan akses dari alamat IP apa pun di Internet (sangat tidak aman) ketik:

bind-address           = 0.0.0.0
# skip-networking
2

Untuk mengizinkan akses dari alamat IP tertentu pada port tertentu, Anda bisa membuat zona FirewallD baru atau menggunakan rich rule. Untuk itu, kita akan membuat zona baru bernama

sudo mysql
0:

bind-address           = 0.0.0.0
# skip-networking
3

Memverifikasi Perubahan

Untuk memverifikasi bahwa user jarak jauh dapat terhubung ke MySQL server, jalankan perintah berikut:

bind-address           = 0.0.0.0
# skip-networking
4

Di mana

sudo mysql
1 adalah nama user yang Anda berikan akses dan
sudo mysql
2 adalah alamat IP dari host tempat MySQL server dijalankan.

Jika semuanya sudah diatur dengan benar, Anda akan dapat masuk ke remote MySQL server.

Jika Anda mendapatkan kesalahan seperti di bawah ini, maka port 3306 tidak terbuka, atau MySQL server tidak listen pada alamat IP.

bind-address           = 0.0.0.0
# skip-networking
5

Kesalahan di bawah ini menunjukkan bahwa user yang Anda coba masuk tidak memiliki izin untuk mengakses MySQL server secara jarak jauh.

bind-address           = 0.0.0.0
# skip-networking
6

Kesimpulan

MySQL, server database sumber terbuka paling populer secara default, hanya mendengarkan koneksi yang masuk di localhost.

Untuk mengizinkan koneksi jarak jauh ke MySQL server, Anda perlu melakukan langkah-langkah berikut:

  1. Konfigurasikan MySQL server untuk listen semua interface tertentu.
  2. Berikan akses ke remote user.
  3. Buka port MySQL di firewall Anda.

  • LABEL
  • Database
  • MariaDB
  • MySQL
  • Web Server

Share

Facebook

Twitter

Pinterest

WhatsApp

Telegram

Berita sebelumyaMengenal Perintah Whereis di Sistem Linux

Berita berikutnyaCara Install dan Konfigurasi HTTP Git Server di Nginx Debian 10

xsand

Related Post

Cara Menampilkan Semua User di MySQL

Tutorial Manajemen Database MySQL dari Baris Perintah

Cara Membuat Database Mysql di Linux Terminal

Cara Membuat User MySQL dan Hak Akses MySQL

Tutorial Cara Reset Password root Mysql

Cara Mudah Hapus User Account MySQL via Terminal Linux

Cara Menghapus Database MySQL di Linux Terminal

Cara Menampilkan Semua Database di MySQL

Cara Menampilkan Semua Table di MySQL Database

Terbaru

Agar database mysql bisa diakses dari luar

Daftar Repository Lokal Ubuntu 22.04 Jammy Jellyfish

xsand

Setiap rilis Ubuntu memiliki nomor versi yang terdiri dari jumlah tahun dan bulan rilis. Misalnya, Rilis pertama Ubuntu 22.04 adalah April 2022. Nomor versi...

Agar database mysql bisa diakses dari luar

Cara Upgrade ke Ubuntu 22.04 dari Baris Perintah

Agar database mysql bisa diakses dari luar

Daftar Repository Lokal Indonesia Debian 11

Agar database mysql bisa diakses dari luar

Menghapus Kernel Module Linux dengan Perintah Rmmod

Agar database mysql bisa diakses dari luar

Tutorial Konfigurasi Nginx Server Blocks di Ubuntu 20.04

Agar database mysql bisa diakses dari luar

Tutorial Konfigurasi Apache Virtual Hosts di Ubuntu 20.04

Rekomendasi

Agar database mysql bisa diakses dari luar

Cara Install Visual Studio Code di CentOS 8

xsand

Visual Studio Code adalah kode editor lintas-platform open source yang dikembangkan oleh Microsoft. Visual Studio memiliki dukungan debugging bawaan, kontrol Git tertanam, syntax highlighting,...