{"id":1384,"date":"2019-09-19T01:33:45","date_gmt":"2019-09-18T18:33:45","guid":{"rendered":"https:\/\/www.linuxid.net\/post\/?p=1384"},"modified":"2025-04-18T15:21:35","modified_gmt":"2025-04-18T08:21:35","slug":"konfigurasi-remote-connections-ke-mysql-database-server","status":"publish","type":"post","link":"https:\/\/www.linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/","title":{"rendered":"Konfigurasi Remote Connections ke MySQL Database Server"},"content":{"rendered":"<p>Secara default, MySQL\u00a0server hanya listens koneksi dari localhost, yang berarti hanya dapat diakses oleh aplikasi yang berjalan di host yang sama.<\/p>\n<p>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.<\/p>\n<p>Satu opsi adalah mengakses MySQL server melalui SSH Tunnel atau mengkonfigurasi MySQL server untuk menerima koneksi jarak jauh.<\/p>\n<p>Dalam panduan ini, kita akan melalui langkah-langkah yang diperlukan untuk memungkinkan koneksi jarak jauh ke MySQL server. Instruksi yang sama berlaku untuk MariaDB.<\/p>\n<h2>Mengkonfigurasi MySQL\u00a0Server<\/h2>\n<p>Langkah pertama adalah mengatur MySQL server untuk listen\u00a0 pada alamat IP tertentu atau semua alamat IP pada mesin.<\/p>\n<p>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.<\/p>\n<p>Untuk melakukannya, Anda perlu mengedit file konfigurasi MySQL dan menambah atau mengubah nilai opsi <code>bind-address<\/code>. Anda dapat mengatur satu alamat IP dan rentang IP. Jika alamatnya adalah <code>0.0.0.0<\/code>, maka MySQL server akan menerima koneksi pada semua host interface IPv4. Jika Anda memiliki IPv6 yang dikonfigurasi pada sistem Anda, maka alih-alih <code>0.0.0.0<\/code>, gunakan <code>::<\/code>.<\/p>\n<p>Lokasi file konfigurasi MySQL berbeda tergantung pada distribusinya. Di Ubuntu dan Debian file tersebut terletak di <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code>, sedangkan di distribusi berbasis Red Hat seperti CentOS, file tersebut berada di <code>\/etc\/my.cnf<\/code>.<\/p>\n<p>Buka file dengan <a href=\"https:\/\/www.linuxid.net\/post\/cara-menggunakan-text-editor-nano-di-baris-perintah-linux\/\">teks editor<\/a> Anda:<\/p>\n<pre>sudo nano \/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/pre>\n<p>Cari baris yang dimulai dengan <code>bind-address<\/code> dan atur nilainya ke alamat IP yang didengarkan oleh MySQL server.<\/p>\n<p>Secara default, nilainya diatur ke <code>127.0.0.1<\/code> (hanya listens di localhost).<\/p>\n<p>Dalam contoh ini, kami akan mengatur MySQL server untuk listen pada semua interface IPv4 dengan mengubah nilainya menjadi<code> 0.0.0.0<\/code><\/p>\n<pre>bind-address= 0.0.0.0&#13;\n# skip-networking<\/pre>\n<p>Jika ada baris yang berisi <code>skip-networking<\/code>, hapus atau berikan komentar dengan menambahkan <code>#<\/code> di awal baris.<\/p>\n<p>Di MySQL 8.0 dan lebih tinggi, arahan <code>bind-address<\/code> mungkin tidak ada. Dalam hal ini, tambahkan di bawah bagian <code>[mysqld]<\/code>.<\/p>\n<p>Setelah selesai, restart layanan MySQL agar perubahan diterapkan. Hanya root atau user dengan hak <a href=\"https:\/\/www.linuxid.net\/post\/pengertian-perintah-sudo-di-linux\/\">sudo<\/a> yang dapat restart layanan.<\/p>\n<p>Untuk memulai kembali MySQL service pada Debian atau Ubuntu, ketik:<\/p>\n<pre>sudo systemctl restart mysql<\/pre>\n<p>Pada distribusi berbasis RedHat seperti CentOS untuk restart\u00a0service jalankan :<\/p>\n<pre>sudo systemctl restart mysqld<\/pre>\n<h2>Memberikan Akses ke user dari\u00a0Remote Machine<\/h2>\n<p>Langkah selanjutnya adalah memungkinkan akses ke database ke user jarak jauh.<\/p>\n<p>Log in ke MySQL server sebagai root user dengan mengetik :<\/p>\n<pre>sudo mysql<\/pre>\n<p>Jika Anda menggunakan plugin native MySQL authentication,\u00a0untuk masuk sebagai root jalankan perintah di bawah ini dan masukkan kata sandi ketika diminta:<\/p>\n<pre>mysql -u root -p<\/pre>\n<p>Dari dalam shell MySQL, gunakan pernyataan <code>GRANT<\/code>\u00a0untuk <a href=\"https:\/\/www.linuxid.net\/post\/cara-membuat-user-mysql-dan-hak-akses-mysql\/\">memberikan akses<\/a> bagi user jarak jauh.<\/p>\n<pre>GRANT ALL ON nama_database.* TO nama_user@'ip_address' IDENTIFIED BY 'password_user_anda';<\/pre>\n<p>Dimana:<\/p>\n<ul>\n<li><code>nama_database<\/code> adalah nama database yang akan disambungkan user .<\/li>\n<li><code>nama_user<\/code> adalah nama dari user MySQL.<\/li>\n<li><code>ip_address<\/code> adalah <a href=\"https:\/\/www.linuxid.net\/post\/cara-mengetahui-atau-melihat-alamat-ip-di-linux\/\">alamat IP<\/a> dari mana user akan terhubung. Gunakan <code>%<\/code> untuk memungkinkan user terhubung dari alamat IP apa pun.<\/li>\n<li><code>password_user_anda<\/code> adalah kata sandi user untuk masuk ke database.<\/li>\n<\/ul>\n<p>Misalnya, untuk memberikan akses ke database <code>dbperusahaan<\/code> ke user bernama <code>budi<\/code> dengan kata sandi <code>b3rU@N9<\/code> dari mesin klien dengan IP <code>10.8.0.5<\/code>, maka perintah yang akan Anda jalankan:<\/p>\n<pre>GRANT ALL ON dbperusahaan.* TO budi@'10.10.0.5' IDENTIFIED BY 'b3rU@N9';<\/pre>\n<h2>Mengkonfigurasi Firewall<\/h2>\n<p>Langkah terakhir adalah mengonfigurasi firewall Anda untuk memungkinkan lalu lintas di port 3306 (port default MySQL) dari mesin jarak jauh.<\/p>\n<h3>Iptables<\/h3>\n<p>Jika Anda menggunakan <a href=\"https:\/\/www.linuxid.net\/post\/cara-konfigurasi-dan-manajemen-firewall-di-centos-8\/\">iptables <\/a>sebagai firewall Anda, perintah di bawah ini akan memungkinkan akses dari alamat IP apa pun di Internet ke port MySQL. Ini sangat tidak aman.<\/p>\n<pre>sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT<\/pre>\n<p>Izinkan akses dari alamat IP tertentu:<\/p>\n<pre>sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT<\/pre>\n<h3>UFW<\/h3>\n<p><a href=\"https:\/\/www.linuxid.net\/post\/cara-disable-ufw-firewall-di-ubuntu-18-04\/\">UFW<\/a> adalah tool firewall default di Ubuntu. Untuk mengizinkan akses dari alamat IP apa pun di Internet (sangat tidak aman) jalankan:<\/p>\n<pre>sudo ufw allow 3306\/tcp<\/pre>\n<p>Izinkan akses dari alamat IP tertentu:<\/p>\n<pre>sudo ufw allow from 10.8.0.5 to any port 3306<\/pre>\n<h3>FirewallD<\/h3>\n<p><a href=\"https:\/\/www.linuxid.net\/post\/cara-konfigurasi-firewall-dengan-firewalld-di-centos-7\/\">FirewallD<\/a> adalah alat manajemen firewall default di CentOS. Untuk mengizinkan akses dari alamat IP apa pun di Internet (sangat tidak aman) ketik:<\/p>\n<pre>sudo firewall-cmd --permanent --zone=public --add-port=3306\/tcp&#13;\nsudo firewall-cmd --reload<\/pre>\n<p>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 <code>mysqlzone<\/code>:<\/p>\n<pre>sudo firewall-cmd --new-zone=mysqlzone --permanent&#13;\nsudo firewall-cmd --reload&#13;\nsudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5\/32&#13;\nsudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306\/tcp&#13;\nsudo firewall-cmd --reload<\/pre>\n<h2>Memverifikasi Perubahan<\/h2>\n<p>Untuk memverifikasi bahwa user jarak jauh dapat terhubung ke MySQL server, jalankan perintah berikut:<\/p>\n<pre>mysql -u nama_user -h ip_mysql_server_remote -p<\/pre>\n<p>Di mana <code>user_name<\/code> adalah nama user yang Anda berikan akses dan <code>mysql_server_ip<\/code> adalah alamat IP dari host tempat MySQL server dijalankan.<\/p>\n<p>Jika semuanya sudah diatur dengan benar, Anda akan dapat masuk ke remote MySQL server.<\/p>\n<p>Jika Anda mendapatkan kesalahan seperti di bawah ini, maka <a href=\"https:\/\/www.linuxid.net\/post\/cara-melihat-dan-memeriksa-port-yang-terbuka-di-linux\/\">port 3306 tidak terbuka,<\/a> atau MySQL server tidak <a href=\"https:\/\/www.linuxid.net\/post\/cara-melihat-port-yang-terpakai-di-linux-terminal\/\">listen pada alamat IP.<\/a><\/p>\n<pre>ERROR 2003 (HY000): Can't connect to MySQL server on '10.10.0.5' (111)\"<\/pre>\n<p>Kesalahan di bawah ini menunjukkan bahwa user yang Anda coba masuk tidak memiliki izin untuk mengakses MySQL server secara jarak jauh.<\/p>\n<pre>\"ERROR 1130 (HY000): Host \u201810.10.0.5\u2019 is not allowed to connect to this MySQL server\"<\/pre>\n<h2>Kesimpulan<\/h2>\n<p>MySQL, server database sumber terbuka paling populer secara default, hanya mendengarkan koneksi yang masuk di localhost.<\/p>\n<p>Untuk mengizinkan koneksi jarak jauh ke MySQL server, Anda perlu melakukan langkah-langkah berikut:<\/p>\n<ol>\n<li>Konfigurasikan MySQL server untuk listen semua interface tertentu.<\/li>\n<li>Berikan akses ke remote user.<\/li>\n<li>Buka port MySQL di firewall Anda.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Secara default, MySQL\u00a0server hanya listens koneksi dari localhost, yang berarti hanya dapat diakses oleh aplikasi&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[151,99,41,14],"class_list":["post-1384","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-database","tag-mariadb","tag-mysql","tag-web-server"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Konfigurasi Remote Connections ke MySQL Database Server - Linuxid<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Konfigurasi Remote Connections ke MySQL Database Server - Linuxid\" \/>\n<meta property=\"og:description\" content=\"Secara default, MySQL\u00a0server hanya listens koneksi dari localhost, yang berarti hanya dapat diakses oleh aplikasi&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Linuxid\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-18T18:33:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-18T08:21:35+00:00\" \/>\n<meta name=\"author\" content=\"xsand\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"xsand\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/\",\"url\":\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/\",\"name\":\"Konfigurasi Remote Connections ke MySQL Database Server - Linuxid\",\"isPartOf\":{\"@id\":\"https:\/\/linuxid.net\/post\/#website\"},\"datePublished\":\"2019-09-18T18:33:45+00:00\",\"dateModified\":\"2025-04-18T08:21:35+00:00\",\"author\":{\"@id\":\"https:\/\/linuxid.net\/post\/#\/schema\/person\/e6642d26041eab9fef2677e204e89d79\"},\"breadcrumb\":{\"@id\":\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Beranda\",\"item\":\"https:\/\/linuxid.net\/post\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Konfigurasi Remote Connections ke MySQL Database Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/linuxid.net\/post\/#website\",\"url\":\"https:\/\/linuxid.net\/post\/\",\"name\":\"Linuxid\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/linuxid.net\/post\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/linuxid.net\/post\/#\/schema\/person\/e6642d26041eab9fef2677e204e89d79\",\"name\":\"xsand\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/linuxid.net\/post\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc8513768e15fa0758099a0ba5b898f3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc8513768e15fa0758099a0ba5b898f3?s=96&d=mm&r=g\",\"caption\":\"xsand\"},\"url\":\"https:\/\/www.linuxid.net\/post\/author\/xsand\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Konfigurasi Remote Connections ke MySQL Database Server - Linuxid","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/","og_locale":"id_ID","og_type":"article","og_title":"Konfigurasi Remote Connections ke MySQL Database Server - Linuxid","og_description":"Secara default, MySQL\u00a0server hanya listens koneksi dari localhost, yang berarti hanya dapat diakses oleh aplikasi&hellip;","og_url":"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/","og_site_name":"Linuxid","article_published_time":"2019-09-18T18:33:45+00:00","article_modified_time":"2025-04-18T08:21:35+00:00","author":"xsand","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"xsand","Estimasi waktu membaca":"5 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/","url":"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/","name":"Konfigurasi Remote Connections ke MySQL Database Server - Linuxid","isPartOf":{"@id":"https:\/\/linuxid.net\/post\/#website"},"datePublished":"2019-09-18T18:33:45+00:00","dateModified":"2025-04-18T08:21:35+00:00","author":{"@id":"https:\/\/linuxid.net\/post\/#\/schema\/person\/e6642d26041eab9fef2677e204e89d79"},"breadcrumb":{"@id":"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/linuxid.net\/post\/konfigurasi-remote-connections-ke-mysql-database-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Beranda","item":"https:\/\/linuxid.net\/post\/"},{"@type":"ListItem","position":2,"name":"Konfigurasi Remote Connections ke MySQL Database Server"}]},{"@type":"WebSite","@id":"https:\/\/linuxid.net\/post\/#website","url":"https:\/\/linuxid.net\/post\/","name":"Linuxid","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/linuxid.net\/post\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Person","@id":"https:\/\/linuxid.net\/post\/#\/schema\/person\/e6642d26041eab9fef2677e204e89d79","name":"xsand","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/linuxid.net\/post\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc8513768e15fa0758099a0ba5b898f3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc8513768e15fa0758099a0ba5b898f3?s=96&d=mm&r=g","caption":"xsand"},"url":"https:\/\/www.linuxid.net\/post\/author\/xsand\/"}]}},"_links":{"self":[{"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/posts\/1384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/comments?post=1384"}],"version-history":[{"count":1,"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/posts\/1384\/revisions"}],"predecessor-version":[{"id":2824,"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/posts\/1384\/revisions\/2824"}],"wp:attachment":[{"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/media?parent=1384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/categories?post=1384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxid.net\/post\/wp-json\/wp\/v2\/tags?post=1384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}