Beranda Programming MySQL Konfigurasi Remote Connections ke MySQL Database Server
- Programming
- MySQL
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-networking7. Anda dapat mengatur satu alamat IP dan rentang IP. Jika alamatnya adalah bind-address = 0.0.0.0 # skip-networking8, 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-networking8, gunakan sudo systemctl restart mysql0.
Lokasi file konfigurasi MySQL berbeda tergantung pada distribusinya. Di Ubuntu dan Debian file tersebut terletak di sudo systemctl restart mysql1, sedangkan di distribusi berbasis Red Hat seperti CentOS, file tersebut berada di sudo systemctl restart mysql2.
Buka file dengan teks editor Anda:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfCari baris yang dimulai dengan bind-address = 0.0.0.0 # skip-networking7 dan atur nilainya ke alamat IP yang didengarkan oleh MySQL server.
Secara default, nilainya diatur ke sudo systemctl restart mysql4 (hanya listens di localhost).
Dalam contoh ini, kami akan mengatur MySQL server untuk listen pada semua interface IPv4 dengan mengubah nilainya menjadibind-address = 0.0.0.0 # skip-networking8
bind-address = 0.0.0.0 # skip-networkingJika ada baris yang berisi sudo systemctl restart mysql6, hapus atau berikan komentar dengan menambahkan sudo systemctl restart mysql7 di awal baris.
Di MySQL 8.0 dan lebih tinggi, arahan bind-address = 0.0.0.0 # skip-networking7 mungkin tidak ada. Dalam hal ini, tambahkan di bawah bagian sudo systemctl restart mysql9.
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 mysqlPada distribusi berbasis RedHat seperti CentOS untuk restart service jalankan :
sudo systemctl restart mysqldMemberikan 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 mysqlJika Anda menggunakan plugin native MySQL authentication, untuk masuk sebagai root jalankan perintah di bawah ini dan masukkan kata sandi ketika diminta:
mysql -u root -pDari dalam shell MySQL, gunakan pernyataan sudo systemctl restart mysqld0 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 mysqld1 adalah nama database yang akan disambungkan user .
- sudo systemctl restart mysqld2 adalah nama dari user MySQL.
- sudo systemctl restart mysqld3 adalah alamat IP dari mana user akan terhubung. Gunakan sudo systemctl restart mysqld4 untuk memungkinkan user terhubung dari alamat IP apa pun.
- sudo systemctl restart mysqld5 adalah kata sandi user untuk masuk ke database.
Misalnya, untuk memberikan akses ke database sudo systemctl restart mysqld6 ke user bernama sudo systemctl restart mysqld7 dengan kata sandi sudo systemctl restart mysqld8 dari mesin klien dengan IP sudo systemctl restart mysqld9, 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 ACCEPTIzinkan akses dari alamat IP tertentu:
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-networking0Izinkan akses dari alamat IP tertentu:
bind-address = 0.0.0.0 # skip-networking1FirewallD
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-networking2Untuk 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 mysql0:
bind-address = 0.0.0.0 # skip-networking3Memverifikasi Perubahan
Untuk memverifikasi bahwa user jarak jauh dapat terhubung ke MySQL server, jalankan perintah berikut:
bind-address = 0.0.0.0 # skip-networking4Di mana sudo mysql1 adalah nama user yang Anda berikan akses dan sudo mysql2 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-networking5Kesalahan 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-networking6Kesimpulan
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:
- Konfigurasikan MySQL server untuk listen semua interface tertentu.
- Berikan akses ke remote user.
- Buka port MySQL di firewall Anda.
- LABEL
- Database
- MariaDB
- MySQL
- Web Server
Share
Telegram
Berita sebelumyaMengenal Perintah Whereis di Sistem Linux
Berita berikutnyaCara Install dan Konfigurasi HTTP Git Server di Nginx Debian 10
xsand
Related Post
Cara Memeriksa Versi MySQL atau MariaDB di Server Linux
Cara Mudah Hapus User Account MySQL via Terminal Linux
Tutorial Manajemen Database MySQL dari Baris Perintah
Tutorial Mysqldump untuk Backup dan Restore Database MySQL
Cara Membuat Database Mysql di Linux Terminal
Cara Menampilkan Semua Table di MySQL Database
Cara Membuat User MySQL dan Hak Akses MySQL
Cara Menghapus Database MySQL di Linux Terminal
Tutorial Cara Reset Password root Mysql
Terbaru
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...
Cara Upgrade ke Ubuntu 22.04 dari Baris Perintah
Daftar Repository Lokal Indonesia Debian 11
Menghapus Kernel Module Linux dengan Perintah Rmmod
Tutorial Konfigurasi Nginx Server Blocks di Ubuntu 20.04
Tutorial Konfigurasi Apache Virtual Hosts di Ubuntu 20.04
Rekomendasi
Cara Menghapus Database MySQL di Linux Terminal
xsand
MySQL adalah sistem manajemen basis data relasional open-source yang paling populer. Menghapus database MySQL cukup mudah, cukup dengan menjalankan satu perintah. Perlu di perhatikan bahwa...