Cara Mengizinkan Koneksi Jarak Jauh ke MySQL

Jika Anda bekerja dengan database MySQL(MySQL database) , maka Anda sudah menyadari tantangan yang Anda hadapi dalam menjaga keamanan database Anda. Dari upaya peretasan basis data menggunakan injeksi SQL hingga serangan brute force, sulit untuk menjaga keamanan data Anda, terutama jika Anda bekerja dengan basis data dari jarak jauh.

Ada beberapa cara untuk mengonfigurasi server SQL untuk mengizinkan koneksi jarak jauh, tetapi Anda harus berhati-hati, karena mengizinkan koneksi jarak jauh di server MySQL dapat membuat database Anda menjadi sasaran empuk peretas. Jika Anda ingin mengizinkan koneksi jarak jauh yang aman ke database MySQL , inilah yang perlu Anda ketahui.

Sebelum kamu memulai(Before You Begin)

Sebelum Anda membuat perubahan apa pun pada database MySQL Anda , penting bagi Anda untuk membuat cadangan database Anda(backup your database) , terutama jika Anda bekerja di server produksi (server yang digunakan secara aktif). Setiap perubahan yang Anda buat pada database Anda, atau server yang menghostingnya, dapat mengakibatkan kehilangan data yang serius jika terjadi kesalahan.

Anda mungkin juga menemukan bahwa perubahan pada koneksi server Anda dapat mencegah Anda mengaksesnya sesudahnya. Jika ini terjadi, Anda mungkin perlu berkonsultasi dengan administrator server untuk dukungan lebih lanjut. Ide yang bagus adalah mencoba perubahan apa pun pada server MySQL yang dijalankan secara lokal untuk memeriksa apakah perubahan Anda berfungsi sebelum mencobanya dari jarak jauh.

Kemungkinan juga jika Anda membuat perubahan pada server jarak jauh, Anda memerlukan cara yang aman untuk terhubung dan membuat perubahan. SSH (Secure Shell) seringkali merupakan cara terbaik untuk melakukan ini, karena memungkinkan Anda untuk terhubung ke server jauh Anda. Anda juga dapat menggunakan SSH untuk terhubung ke server di jaringan lokal Anda, seperti yang dihosting di Raspberry Pi(hosted on a Raspberry Pi) .

Panduan ini akan memandu Anda melalui langkah-langkah untuk mengonfigurasi MySQL untuk mengizinkan koneksi jarak jauh, tetapi Anda harus memastikan bahwa Anda memiliki akses langsung atau jarak jauh ke server yang menghosting server MySQL Anda terlebih dahulu.

Misalkan(Suppose) Anda tidak memiliki akses jarak jauh ke server Anda melalui SSH (misalnya). Dalam hal ini, Anda tidak akan dapat mengonfigurasi database MySQL Anda untuk mengizinkan koneksi jarak jauh secara langsung kecuali akun mySQL root Anda sudah mengizinkan koneksi jarak jauh. Jadi, Anda harus membuat koneksi ini terlebih dahulu sebelum Anda dapat melanjutkan.

Mengedit File Konfigurasi MySQL Anda(Editing Your MySQL Configuration File)

Langkah pertama dalam mengonfigurasi MySQL untuk mengizinkan koneksi jarak jauh adalah mengedit file konfigurasi MySQL Anda. (MySQL)Pada tahap ini, panduan ini akan menganggap Anda telah terhubung ke server, PC, atau Mac yang menghosting database mySQL Anda dari jarak jauh dan memiliki akses konsol. 

Atau, Anda dapat mengonfigurasi server MySQL lokal menggunakan terminal terbuka di Mac atau Linux atau editor teks di Windows .

  1. Untuk memulai, gunakan editor teks konsol pilihan Anda untuk mengedit file database MySQL Anda. (MySQL)Di Linux , ketik sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ke terminal atau jendela SSH untuk mengedit file ini menggunakan editor nano (dengan asumsi database MySQL Anda berada di lokasi default)

  1. Jika Anda menjalankan Windows , buka File Explorer dan akses folder yang berisi instalasi MySQL Anda (mis. (MySQL)C:/Program Files/MySQL/MySQL Server 8.0 ). Buka file my.ini menggunakan editor teks default Anda (mis. Notepad ) dengan mengklik dua kali entri tersebut. Jika tidak ada, buat filenya terlebih dahulu(create the file first) .

  1. Di Mac , buka jendela terminal dan ketik sudo nano /usr/local/etc/my.cnf . Ini adalah file konfigurasi default untuk MySQL jika Anda telah menginstal MySQL menggunakan homebrew(using homebrew) .

Lokasi yang dirujuk di atas adalah lokasi default untuk file konfigurasi MySQL . Jika perintah ini tidak berfungsi, Anda harus mencari file yang relevan ( my.cnf , mysqld.cnf , atau my.ini ) secara manual untuk menemukan jalur file yang relevan.

Mengatur Rentang IP Aman Bind-Address(Setting a Safe Bind-Address IP Range)

  1. Setelah Anda membuka file konfigurasi MySQL untuk server Anda, gunakan tombol panah keyboard Anda untuk mencapai bagian bind-address dari file tersebut. Rentang IP ini membatasi koneksi ke database Anda, yang biasanya diatur untuk hanya mengizinkan koneksi dari mesin atau server lokal menggunakan 127.0.0.1 .

  1. Jika Anda ingin mengonfigurasi database MySQL untuk mengizinkan koneksi dari perangkat yang menggunakan koneksi internet Anda saat ini, temukan alamat IP publik Anda(find your public IP address) terlebih dahulu, lalu ganti 127.0.0.1 dengan alamat IP tersebut. Atau, ganti dengan alamat IP untuk perangkat atau server yang ingin Anda izinkan koneksinya.

  1. Dalam beberapa keadaan, Anda mungkin ingin mengizinkan semua(all) koneksi jarak jauh ke database MySQL . Ini membawa risiko ekstrem(extreme risk) dan tidak boleh digunakan di server produksi. Namun, jika Anda ingin mengizinkannya, ganti 127.0.0.1 dengan 0.0.0.0 .

  1. Catat nilai port di bagian Pengaturan Dasar(Basic Settings) . Ini akan diperlukan di bagian berikutnya. Jika tidak terlihat maka nilai default yang akan digunakan yaitu port 3306 . Anda dapat menambahkan port Anda sendiri dengan mengetikkan port = xxxx pada baris baru, mengganti xxxx dengan nilai port yang sesuai.

  1. Setelah Anda mengonfigurasi bind-address di file konfigurasi MySQL Anda , simpan file tersebut. Jika Anda menggunakan Linux , pilih Ctrl + O dan Ctrl + X untuk melakukan ini. Di Mac, pilih Command + O dan Command + X . Pengguna Windows dapat menyimpan dengan memilih File > Save .

  1. Selanjutnya, pengguna Linux dan Mac dapat me-restart MySQL dengan mengetik mysql.server stop && mysql.server start atau mysql.server restart . Anda mungkin perlu meninggikan perintah menggunakan sudo(using sudo) (mis. sudo mysql.server restart ) dan menggunakan jalur yang sesuai ke file mysql.server (mis. /usr/local/bin/mysql.server ).

  1.  Jika perintah di atas tidak berhasil, coba sudo service mysql restart sebagai gantinya.

  1. Untuk memulai ulang MySQL di Windows , buka jendela PowerShell baru dengan mengklik kanan menu (PowerShell)Start dan memilih Windows PowerShell (Admin) . Di jendela PowerShell, ketik net stop mysql80 diikuti oleh net start mysql80 , ganti mysql80 dengan nama layanan yang benar di PC Anda.

Jika Anda tidak yakin dengan nama layanan yang benar di Windows , ketik net start untuk menemukannya. Jika Anda tidak dapat memuat ulang konfigurasi Anda, mulai ulang server Anda dan muat ulang MySQL secara manual (jika perlu).

Mengonfigurasi Firewall Anda(Configuring Your Firewalls)

Pada tahap ini, database MySQL Anda harus mengizinkan koneksi jarak jauh dari perangkat menggunakan alamat IP yang Anda tetapkan sebagai nilai alamat-bind(bind-address) dalam file konfigurasi MySQL Anda (atau dari semua perangkat jika Anda menetapkan nilai ini ke (MySQL)0.0.0.0 ). Namun, koneksi akan tetap diblokir oleh perangkat atau firewall jaringan(device or network firewall) Anda .

Sebagian besar server dan PC menggunakan firewall untuk memblokir koneksi kecuali akses ke port tertentu diberikan. Langkah-langkah untuk mengonfigurasi ini akan bervariasi, tergantung pada apakah Anda menjalankan MySQL di Windows atau Linux . Firewall Mac(Mac) dinonaktifkan secara default, jadi Anda tidak perlu menyelesaikan langkah tambahan apa pun di sini.

Konfigurasi Firewall Linux(Configure Linux Firewalls)

Banyak server Linux menggunakan iptables sebagai utilitas firewall default. Anda dapat mengkonfigurasinya dengan mengikuti langkah-langkah di bawah ini.

  1. Buka terminal atau koneksi SSH dan ketik (SSH)sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT . Ganti XXXX dengan alamat IP untuk perangkat yang Anda ingin izinkan koneksi MySQL dari(from) , dan ganti YYYY dengan nilai port yang cocok dari file konfigurasi MySQL Anda (mis. 3306 ).

  1. Ini akan mengonfigurasi firewall untuk sementara. Jika Anda menggunakan server Linux(Linux) berbasis Debian atau Ubuntu , buat perubahan ini permanen dengan mengetikkan sudo netfilter-persistent save dan sudo netfilter-persistent reload ke terminal atau jendela SSH.

Jika iptables bukan alat firewall default untuk distribusi Linux Anda, Anda harus membaca manual pengguna distribusi Anda untuk informasi lebih lanjut. Jika paket tertentu (seperti netfilter-persistent ) tidak tersedia, gunakan alat repositori perangkat lunak distribusi Anda untuk menginstalnya (mis. Sudo apt install netfilter-persistent ).

Konfigurasi Windows Firewall(Configure Windows Firewalls)

Jika Anda menggunakan PC atau server Windows untuk menghosting database, Anda dapat mengonfigurasi firewall menggunakan langkah-langkah berikut:

  1. Klik kanan(Right-click) menu Start dan pilih Run .

  1. Di kotak Jalankan(Run) , ketik wf.msc dan pilih OK .

  1. Di jendela Windows Defender , pilih Aturan Masuk(Inbound Rules ) > Aturan Baru(New Rule) .

  1. Di jendela New Inbound Rule Wizard , pilih Port > Next .

  1. Pada menu berikutnya, pilih TCP dari opsi, ketik 3306 (atau nilai port mana pun yang tercantum dalam file konfigurasi MySQL Anda), lalu pilih (MySQL)Next .

  1. Pada menu Tindakan(Action) , biarkan opsi default Izinkan koneksi(Allow the connection) diaktifkan, lalu pilih Berikutnya(Next) .

  1. Konfirmasikan bahwa Anda ingin aturan diterapkan ke semua jenis jaringan, lalu pilih Berikutnya(Next)

  1. Ketik nama deskriptif untuk aturan (mis. MySQL ) di port yang disediakan, lalu pilih Selesai(Finish) untuk menambahkannya ke daftar aturan firewall Anda.

Jika Anda kesulitan menyambungkan, ulangi langkah-langkah di atas, pastikan untuk membuat aturan keluar(outbound rule ) baru di pengaturan firewall Anda menggunakan detail yang sama (port 3306, dll). Anda mungkin juga perlu mengonfigurasi router jaringan lokal Anda untuk membuka port yang diblokir yang diperlukan(open the necessary blocked ports) untuk memungkinkan koneksi masuk dan keluar ke database Anda. 

Menghubungkan ke Server Jarak Jauh Menggunakan MySQL(Connecting to a Remote Server Using MySQL)

Setelah mengonfigurasi database MySQL Anda untuk mengizinkan koneksi jarak jauh, Anda harus benar-benar membuat koneksi ke sana. Anda dapat melakukan ini menggunakan perintah mysql ( mysql.exe di Windows ) dari terminal atau jendela PowerShell .

Jika Anda menjalankan Windows , Anda harus memastikan bahwa MySQL diinstal secara lokal(MySQL is installed locally) sebelum Anda mulai. Pengguna Mac(Mac) dapat menginstal MySQL menggunakan homebrew(using homebrew) dari terminal ( brew install mysql ), sementara pengguna Linux dapat menggunakan repositori aplikasi lokal mereka (mis. Sudo apt install mysql ) untuk menginstal paket yang diperlukan.

Menghubungkan ke MySQL di Linux atau Mac(Connecting to MySQL on Linux or Mac)

  1. Untuk terhubung ke server MySQL jarak jauh Anda di Mac atau Linux , buka jendela terminal baru dan ketik mysql -u username -h XXXX:XXXX -p . Ganti XXXX:XXXX dengan alamat IP dan nomor port server jarak jauh Anda (mis. 100.200.100.200:3306 ) dan nama pengguna(username) dengan nama pengguna MySQL Anda.

  1. Saat diminta, konfirmasikan kata sandi Anda. Jika koneksi berhasil, pesan sukses akan muncul di terminal.

Menghubungkan ke MySQL di Windows(Connecting to MySQL on Windows)

  1. Untuk terhubung ke server MySQL jarak jauh di Windows , buka jendela PowerShell baru dengan mengklik kanan menu (PowerShell)Start dan memilih Windows PowerShell (Admin) .

  1. Di jendela PowerShell baru, ketik cd “C:\Program Files\MySQL\MySQL Workbench 8.0\ " untuk masuk ke folder yang benar, ganti direktori ini dengan direktori instalasi yang benar di PC Anda. Misalnya, jika versi MySQL Anda adalah 8.0.1, gunakan folder MySQL Workbench 8.0.1 sebagai gantinya.

  1. Dari sana, ketik .\mysql.exe -u username -h X.X.X.X:XXXX -p . Ganti XXXX:XXXX dengan alamat IP dan nomor port server jarak jauh Anda (mis. 100.200.100.200:3306 ) dan nama pengguna(username) dengan nama pengguna MySQL yang memungkinkan akses jarak jauh (seperti root ). Ikuti(Follow) petunjuk tambahan di layar.
  2. Berikan kata sandi Anda, saat diminta, untuk menyelesaikan proses masuk dan mengakses database MySQL Anda dari jarak jauh.

Jika ini tidak berhasil, sambungkan ke server atau PC yang menghosting server MySQL Anda menggunakan SSH (atau akses langsung) menggunakan langkah-langkah ini dan menggunakan argumen -h localhost . Anda kemudian dapat membuat akun pengguna yang sesuai dengan mengikuti langkah-langkah di bawah ini.

Mengizinkan Akses Pengguna Jarak Jauh ke Database MySQL(Allowing Remote User Access to a MySQL Database)

Pada titik ini, Anda seharusnya dapat terhubung ke server MySQL Anda dari jarak jauh menggunakan akun pengguna root server Anda atau akun pengguna lain dengan hak istimewa yang lebih tinggi. Karena tingkat akses ini tidak aman, Anda mungkin lebih suka membuat akun yang lebih terbatas untuk mengakses database MySQL Anda .

Akun ini akan memiliki akses terbatas ke server MySQL Anda , yang memungkinkannya untuk berinteraksi hanya dengan database yang dipilih. Itu tidak akan dapat membuat perubahan yang lebih serius, seperti mengakses data database lain, membuat akun pengguna baru, dll. 

Anda harus memiliki kemampuan untuk masuk ke server MySQL Anda dari jarak jauh. (MySQL)Jika Anda tidak dapat menggunakan akun root Anda dari jarak jauh, Anda harus mengakses shell server Anda menggunakan perintah mysql melalui koneksi (mysql)SSH jarak jauh atau dengan langsung mengakses PC atau server yang menghosting server.

  1. Di shell MySQL jarak jauh Anda (menggunakan alat (MySQL)mysql ), ketik CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; dan pilih Masuk(Enter) . Ganti nama pengguna(username ) dengan nama pengguna yang ingin Anda buat, xxxx dengan alamat IP yang ingin Anda sambungkan, dan kata sandi(password) dengan kata sandi yang sesuai.

  1. Anda harus memberikan akun baru Anda dengan izin yang diperlukan. Untuk melakukannya, ketik GRANT ALL ON databasename.* TO username@”x.x.x.x”; dan ganti nama database, nama pengguna,(databasename, username, ) dan xxxx  dengan detail yang benar. Jika Anda mau, ganti nama database(databasename) dengan * untuk memberikan akses ke semua database. 

Dengan akses yang diberikan, gunakan langkah-langkah di bagian di atas untuk terhubung ke server Anda dari jarak jauh menggunakan akun baru Anda (mis. mysql -u username -h XXXX:XXXX -p ).

Mengamankan Data Basis Data Anda(Securing Your Database Data)

Baik Anda bekerja dengan MySQL atau jenis database SQL lainnya , penting untuk menjaga koneksi Anda tetap aman untuk menjaga keamanan data Anda. Cara yang baik untuk melakukannya adalah dengan membuat kunci SSH untuk akses jarak jauh(generate SSH keys for remote access) ke server Anda, daripada mengandalkan kata sandi yang sudah usang (dan mudah ditebak).

Jika Anda khawatir tentang kehilangan data, Anda dapat dengan mudah mencadangkan database Anda(back up your database) secara online. Sebagian besar basis data dijalankan menggunakan server Linux —Anda dapat (Linux)mengotomatiskan pencadangan file Linux dengan mudah(automate a Linux file backup easily) . Jika Anda menjalankan MySQL di Windows , Anda dapat menyiapkan sistem pencadangan otomatis serupa untuk Windows(automatic backup system for Windows) , yang memungkinkan Anda memulihkan data dalam keadaan darurat.



About the author

Saya seorang profesional komputer yang memiliki pengalaman bekerja dengan perangkat lunak Microsoft Office, termasuk Excel dan PowerPoint. Saya juga memiliki pengalaman dengan Chrome, yang merupakan browser milik Google. Keterampilan saya meliputi komunikasi tertulis dan verbal yang sangat baik, pemecahan masalah, dan pemikiran kritis.



Related posts