Cara Mudah Membuka Akses MySQL Server dari Komputer Lain


Berdasarkan tutorial sebelumnya dimana anda diajarkan cara install server database MySQL, pada kesempatan kali ini saya ingin menuliskan bagaimana cara membuka akses server Database MySQL tersebut agar dapat diakses dari komputer lain. Tetapi tidak ke seluruh komputer lain, hanya satu komputer saja yang saya buka aksesnya berdasarkan alamat IP yang sudah terdaftar sebelumnya demi alasan keamanan. Secara default, MySQL Server hanya akan membuka aksesnya kepada localhost(127.0.0.1) alias komputer dimana aplikasi server database MySQL diinstall. dan pada kasus ini saya ingin membuka hak akses server database MySQL tersebut agar dapat diakses melalui alamat 192.168.0.254 yang notabene masih satu alamat network dengan server database MySQL tersebut yang berada di alamat 192.168.0.252.

*Sebagai informasi, server MySQL yang saya gunakan adalah versi 5.5 dan bisa juga digunakan untuk MySQL Server versi 5.6. Untuk membuka akses MySQL Server 5.7 dari komputer lain, anda bisa mengunjungi link ini.

Berikut pesan error yang terlihat apabila kita ingin membangun koneksi ke server MySQL sebelum dibuka aksesnya:


Berdasarkan gambar tersebut terlihat bahwa saya ingin mengakses server database MySQL yang berada pada alamat IP 192.168.0.252, dan hasilnya adalah ditolak. Lalu bagaimana cara membuka aksesnya dari komputer lainnya? Berikut langkah langkahnya:
Silakan masuk ke dalam server MySQL melalui SSH (jika server MySQL yang anda gunakan memakai sistem operasi Linux), jika disini server database mysql saya adalah di alamat 192.168.0.252, setelah berhasil masuk kemudian saya akan membuka file my.cnf dengan perintah:

 sudo vim /etc/mysql/my.cnf

Lalu amati dan ubah bagian:

 bind-address = 127.0.0.1

menjadi

 bind-address = 127.0.0.1
 bind-address = 192.168.0.252

kemudian simpan. Tidak tahu cara menyimpannya? anda bisa belajar melalui tutorial menggunakan vim yang telah saya buat sebelumnya.

Karena anda masih berada di dalam server MySQL, setelah selesai melakukan perubahan tersebut silakan masuk terlebih dahulu ke console server Database MySQL dari localhost dengan perintah:

 mysql -u root -p

kemudian masukkan passwordnya, lalu jalankan perintah:

 use mysql;

untuk memilih database mysql sebagai database yang akan dioperasikan, kemudian jalankan perintah:

UPDATE `mysql`.`user` SET `Host`='192.168.0.254' WHERE `user`.`Host` ='localhost' AND `user`.`User` ='root';

untuk merubah data dalam tabel user dengan kolom Host dari "localhost" ke alamat IP "192.168.0.254" dengan user "root".

Perintah diatas berarti anda memberikan hak akses kepada alamat IP 192.168.0.254 untuk dapat mengakses server database mysql yang terletak di alamat IP 192.168.0.252.

Jika perintah tersebut berhasil dijalankan maka akan muncul hasilnya seperti berikut:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
Jika benar begitu, silakan keluar dari console server MySQL dengan perintah:

 quit

lalu silakan restart servis server Database MySQL dengan perintah:

 sudo service mysql restart

Setelah itu silakan coba akses server Database MySQL dari dalam localhost terlebih dahulu sebelum dari komputer lain dengan perintah:

 mysql -u root -p

jika berhasil, silakan coba akses dari komputer lain yang beralamat IP 192.168.0.254 sesuai yang tadi dimasukkan ke dalam tabel user di dalam server Database MySQL dengan perintah:

 mysql -h 192.168.0.252 -u root -p

jika berhasil maka anda akan menjumpai prompt console mysql seperti ketika anda login dari localhost server database MySQL seperti gambar di bawah:



Bagaimana, mudah bukan? silakan mencoba dan semoga berhasil. :)




Comments

software pulsa said…
Trmksh infonya gan.. sangat membantu saya
Ilham Rhamadan said…
gan kalo ip server ada 2(lokal dan publik) saya coba tambahkan
bind-address = ip lokal
bind-address = ip publik

hasilnya hanya bisa di akses di 1 ip

bagaimana caranya agar bisa di akses dari k 2 ip tersebut gan? tolong di bantu y gan.. tq before..
Coba bind-address nya di comment saja jadi #bind-address, kemudian service mysql di restart, lalu cek pake nmap
ibenk said…
Mau tanya gan, kalau komputer server dan client tidak dalam 1 jaringan, misalnya server di kantor, client di rumah. Bagaimana caranya ya?
Bisa saja, tapi server di kantor harus punya IP publik (bisa di akses via internet), atau client di rumah masuk ke dalam jaringan VPN kantor, bisa pilih salah satu opsi tersebut
asdans said…
maaf mau tanya, sy cb buka file my.cnf, tapi kenapa ya gak ada baris yang dimaksud?
adanya spt ini saja..

# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

!includedir /etc/mysql/conf.d/
@asdans versi mysql yang anda gunakan adalah versi 5.7 coba saja dibuka file yang ada di /etc/mysql/mysql.conf.d/mysqld.cnf

anda akan menemukan baris yang saya maksud