MySQL Remote Access (Grant)

Kasus ini terjadi ketika saya sedang mengerjakan sebuah proyek aplikasi PHP yang memiliki data berskala besar. Akhirnya saya memutuskan untuk merancang server aplikasi dan database terpisah di 2 server, katakanlah server A adalah server yang khusus menyimpan source code aplikasi, server B adalah server yang khusus untuk database.

Database yang digunakan adalah MySQL, sepintas bayangan saya, yang paling penting server A harus selalu terhubung dengan server B, kemudian di aplikasi hanya mengubah host koneksi dengan IP database. Namun setelah dicoba:

Baiklah, berikut adalah yang harus anda perhatikan:

Server A: Aplikasi (Contohnya memiliki IP 10.20.30.40 )
Server B: Database (Contohnya memiliki IP 10.20.30.50 )
Kedua server menggunakan OS Linux Ubuntu 12.04 Server

Ketentuan

Server A harus terhubung dengan server B, baik menggunakan koneksi lokal maupun internet, kedua server ini harus saling terhubung satu sama lain dan harus dipastikan tidak boleh ada loss connection sedikitpun, karena akan ada transaksi data secara realtime di kedua server ketika aplikasi sudah berjalan (Gunakan perintah ping IP di kedua server untuk memastikan kedua server saling terhubung).

Server A di install  apache2 nmap php5  (web server) server B di install  nmap mysql-server-5.5  (db server)

nmap localhost  di server A sehingga menghasilkan open port 80 (Apache), di server B sehingga menghasilkan open port 3306 (MySQL)

Ubah config MySQL

Ubah file berikut di server B

Berikan komentar di baris berikut

Simpan, lalu restart MySQL dengan perintah

Lakukan  nmap 10.20.30.50  dari server A, seharusnya anda mendapatkan open port 3306 karena server db sudah tidak mengikat lagi ke lokal server.

Ubah GRANT Privilege

Secara default, MySQL hanya akan melayani hak akses untuk lokal/1 server saja, jadi harus menambahkan hak baru untuk dapat diakses oleh server A

Berikut adalah perintah untuk update hak kepada semua mesin untuk menggunakan server B

Berikut adalah perintah untuk update hak hanya ke mesin yang dipilih untuk menggunakan server B

Dimana IP  10.20.30.40  adalah IP aplikasi, anda dapat mengubahnya dengan IP server aplikasi anda, dan tentunya, anda dapat mendaftarkan banyak mesin aplikasi.

Jangan lupa untuk mengubah  USERNAME  dan  PASSWORD  dengan yang anda tetapkan.

Setelah itu, jalankan perintah berikut

Tes Koneksi

Sekarang, saatnya test koneksi dari yang sebelumnya dibuat

Jika anda mendapatkan shell MySQL, anda berarti sudah berhasil terhubung, jangan lupa untuk  show databases;  untuk melihat daftar database yang akan anda gunakan di server A

Menghapus Akses

Bagaimana jika saya salah/terlanjur memberikan akses?

Berikut adalah perintah mencabut/menghapus akses yang sudah terlanjur dibuat di semua mesin

Kemudian berikut adalah perintah untuk mencabut/menghapus akses yang sudah terlanjur dibuat di mesin tertentu

Jangan lupa untuk

Selamat mencoba 🙂

Content Protection by DMCA.com