Agar mysql dapat di akses di luar

Skip to content

Agar mysql dapat di akses di luar

Berikut ini saya akan menjelaskan bagaimana agar server database kita dapat diakses dari luar jaringan, karena secara default MySQL tidak mengizinkan akses dari luar.

  1. Masuk ke mysql :
ridwan# msyql -u root -p

2. Masukan password Anda, kemudian :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

3. kemudian :

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

Jika database Anda mariadb, maka lokasi configurasinya ada pada path berikut :

/etc/mysql/mariadb.conf.d

ganti line berikut :

bind-address = 127.0.0.1

Menjadi :

bind-address = 0.0.0.0

Terimakasih 😉

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

Namun, dalam beberapa situasi, perlu untuk mengakses server MySQL dari lokasi yang jauh. Misalnya, ketika Anda ingin menyambungkan ke server MySQL jarak jauh dari sistem lokal Anda, atau ketika menggunakan penyebaran multi-server di mana aplikasi berjalan pada mesin yang berbeda dari server database. Satu opsi adalah mengakses server MySQL melalui SSH Tunnel dan yang lainnya adalah mengkonfigurasi server MySQL untuk menerima koneksi jarak jauh.

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

Mengkonfigurasi Server MySQL

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

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

Untuk melakukannya, Anda perlu mengedit file konfigurasi MySQL dan menambah atau mengubah nilai opsi bind-address . Anda dapat mengatur satu alamat IP dan rentang IP. Jika alamatnya adalah 0.0.0.0 , server MySQL menerima koneksi pada semua antarmuka IPv4 host. Jika Anda memiliki IPv6 yang dikonfigurasi pada sistem Anda, maka alih-alih 0.0.0.0 , gunakan :: .

Lokasi file konfigurasi MySQL berbeda tergantung pada distribusinya. Di Ubuntu dan Debian file tersebut terletak di /etc/mysql/mysql.conf.d/mysqld.cnf , sedangkan di distribusi berbasis Red Hat seperti CentOS, file tersebut berada di /etc/my.cnf .

Buka file dengan editor teks Anda:

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

Cari baris yang dimulai dengan bind-address dan atur nilainya ke alamat IP yang harus didengarkan oleh server MySQL.

Secara default, nilainya diatur ke 127.0.0.1 (hanya mendengarkan di localhost).

Dalam contoh ini, kita akan mengatur server MySQL untuk mendengarkan semua antarmuka IPv4 dengan mengubah nilainya menjadi 0.0.0.0

mysqld.cnf

bind-address = 0.0.0.0 # skip-networking

Jika ada baris yang berisi skip-networking , hapus atau komentari dengan menambahkan # di awal baris.

Di MySQL 8.0 dan lebih tinggi, arahan bind-address mungkin tidak ada. Dalam hal ini, tambahkan di bawah bagian.

Setelah selesai, mulai ulang layanan MySQL agar perubahan diterapkan. Hanya root atau pengguna dengan hak sudo yang dapat memulai kembali layanan.

Untuk memulai kembali layanan MySQL di Debian atau Ubuntu, ketik:

sudo systemctl restart mysql

Pada distribusi berbasis RedHat seperti CentOS untuk memulai kembali menjalankan layanan:

sudo systemctl restart mysqld

Memberikan Akses ke Pengguna dari Mesin Jarak Jauh

Langkah selanjutnya adalah mengizinkan akses ke database ke pengguna jarak jauh.

Masuk ke server MySQL sebagai pengguna root dengan mengetik:

sudo mysql

mysql -uroot -p

Dari dalam shell MySQL, gunakan pernyataan GRANT untuk memberikan akses bagi pengguna jarak jauh.

GRANT ALL ON database_name.* TO [email protected]'ip_address' IDENTIFIED BY 'user_password';

Dimana:

  • database_name adalah nama basis data yang akan disambungkan pengguna. user_name adalah nama dari pengguna MySQL. ip_address adalah alamat IP dari mana pengguna akan terhubung. Gunakan % untuk memungkinkan pengguna terhubung dari alamat IP apa pun. kata sandi pengguna adalah kata sandi pengguna.

Misalnya, untuk memberikan akses ke database dbname ke pengguna bernama foo dengan kata sandi my_passwd dari mesin klien dengan IP 10.8.0.5 , Anda akan menjalankan:

GRANT ALL ON dbname.* TO [email protected]'10.8.0.5' IDENTIFIED BY 'my_passwd';

Mengkonfigurasi Firewall

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

Iptables

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 alat firewall default di Ubuntu. Untuk mengizinkan akses dari alamat IP apa pun di Internet (sangat tidak aman) jalankan:

sudo ufw allow 3306/tcp

Izinkan akses dari alamat IP tertentu:

sudo ufw allow from 10.8.0.5 to any port 3306

FirewallD

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

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp sudo firewall-cmd --reload

Untuk mengizinkan akses dari alamat IP tertentu pada port tertentu, Anda bisa membuat zona FirewallD baru atau menggunakan aturan kaya. Buat zona baru dengan nama mysqlzone :

sudo firewall-cmd --new-zone=mysqlzone --permanent sudo firewall-cmd --reload sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32 sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp sudo firewall-cmd --reload

Memverifikasi Perubahan

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

mysql -u user_name -h mysql_server_ip -p

Di mana user_name adalah nama pengguna yang Anda berikan akses dan mysql_server_ip adalah alamat IP dari host tempat server MySQL dijalankan.

Jika semuanya diatur dengan benar, Anda akan dapat masuk ke server MySQL jarak jauh.

ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"

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

"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"

Kesimpulan

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

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

  1. Konfigurasikan server MySQL untuk mendengarkan semua atau antarmuka tertentu. Akses gran ke pengguna jarak jauh. Buka port MySQL di firewall Anda.

marisb mysql

Apakah cara tercepat untuk mengakses database melalui MySQL client?

Cara paling cepat untuk memulai MySQL Client adalah dengan menggunakan Command Line Client. Aplikasi ini bisa diakses dari menu Start –> MySQL –> MySQL 8.0 Command Line Client.

Bagaimanakah cara melakukan remote user pada server MySQL?

Berikut ini cara Remote MySQL menggunakan Workbench yang bisa dicoba:.
Step 1: Login cPanel. Login ke cPanel terlebih dulu, kemudian ke menu Remote MySQL..
Step 2: Tambahkan IP. ... .
Step 3: Buka MySQL Workbench. ... .
Step 4: Atur Koneksi Baru. ... .
Step 5: Open Connection. ... .
Step 6: Management. ... .
Step 7: Performance..

Apa yang dimaksud remote MySQL?

Remote MySQL merupakan fitur yang digunakan untuk menghubungkan database MySQL dengan aplikasi pihak ketiga seperti Navicat, Workbench, dan lainnya. Melalui aplikasi tersebut, Anda bisa mengelola database secara remote.