MySQL Remote Access


Jika anda ingin meremote database mysql anda dari luar localhost  ::

Anda perlu ketik perintah berikut yang akan memungkinkan koneksi remote.

Langkah # 1: Login Menggunakan SSH (jika server berada di luar pusat data)

Pertama, login ke ssh ke remote server database MySQL:

ssh fendiaz@202.31.44.1

Langkah # 2: Edit my.cnf File

Setelah terhubung anda perlu mengedit file konfigurasi MySQL my.cnf menggunakan editor teks seperti vi / nano.

  • Jika Anda menggunakan Linux Debian file tersebut berada di / etc / mysql / my.cnf lokasi
  • Jika Anda menggunakan Red Hat Linux / Fedora / Centos Linux file tersebut berada di / etc / my.cnf lokasi
  • Jika Anda menggunakan FreeBSD anda perlu membuat file / var / db / mysql / my.cnf

Edit /etc/my.cnf

# nano /etc/mysql/my.cnf

Langkah # 3: Setelah file dibuka, cari baris yang terlihat sebagai berikut

[mysqld]

Pastikan line skip-networking merupakan komentar (atau menghapus baris) dan tambahkan baris berikut

bind-address=YOUR-SERVER-IP

Sebagai contoh, jika server MySQL IP 65.55.55.2 maka seluruh blok harus terlihat seperti sebagai berikut:

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking
....
..
....

Maka ;

  • bind-address: alamat IP untuk mengikat.
  • skip-networking :  Jangan mendengarkan TCP / IP koneksi sama sekali. Semua interaksi dengan mysqld harus dilakukan melalui soket Unix.   Pilihan ini sangat direkomendasikan untuk sistem di mana hanya permintaan IP yang diperbolehkan.   Kalau Anda perlu mengizinkan koneksi remote semua IP, baris ini harus dihapus dari my.cnf atau meletakkannya di negara komentar.
  • Itu saya isikan dengan network yang saya gunakan dalam VPN, tetapi mysql tidak bisa diakses dari luar network  / VPN :: Tetapi apabila anda menggunakan IPPublik anda dapat menghapus baris tersebut atau menjadikan comment ( Melepaskan Ikatan )
  • # bind-address = 192.168.0.1

Step# 4 Simpan dan keluar File

dan restart mysql Server, enter:

# /etc/init.d/mysql restart

Step # 5 Grant access to remote IP address

Koneksi ke mysql server:

$ mysql -u root -p mysql

Grant access to ke database baru

mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO fendiaz@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

gimana ya Grant database yang sudah ada ?

Kalo misal databasenya udah ada ya tinggal di kasih grant ke Ip tertentu

mysql> update db set Host='202.54.10.20' where Db='kas';
mysql> update user set Host='202.54.10.20' where user='fendiaz';

Step # 5: Keluar  MySQL

mysql> exit

Step # 6: Membuka port 3306

Nah Ini iptables buat buka port 3306 dan firewallnya :: ni ku juga baru tau

[A sample iptables rule to open Linux iptables firewall]
# /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

[OR only allow remote connection from your web server located at 10.5.1.3:]

/sbin/iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT

[OR only allow remote connection from your lan subnet 192.168.1.0/24:]

/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

Dan Simpan Iptables -nya:
# service iptables save

Source lain di Linux lain

A sample FreeBSD / OpenBSD pf rule ( /etc/pf.conf)

pass in on $ext_if proto tcp from any to any port 3306

OR allow only access from your web server located at 10.5.1.3:

pass in on $ext_if proto tcp from 10.5.1.3 to any port 3306  flags S/SA synproxy state

Step # 7: Sekarang ayo coba

Sekarang buka dari:
$ mysql -u fendiaz –h 65.55.55.2 –p

Where,

  • -u fendiaz: fendiaz is MySQL username
  • -h IP or hostname: 65.55.55.2 is MySQL server IP address or hostname (FQDN)
  • -p : Prompt for password

kamu juga bisa lakukan telnet klo mau
$ telnet 65.55.55.2 3306

oh iya :D kalo aku si tambahan aja ::

Nambah User Grant privilage tanpa batasan IP :: tapi ya rawan gitu :: hehe :: karena ku pake Hamachi jadi aman karena hanya yang ter Alokasi dengan VPN saja yang bisa accsess ::

GRANT ALL PRIVILEGES ON *.* TO 'fendiaz'@'%' IDENTIFIED BY 'sukses' WITH GRANT OPTION;

fendiaz =  nama User :: ganti sesuai selera
sukses = password :: ya dihafal saja

Harap Ilmu ini bermanfaat :: salam diaz ::

MySQL Remote Access

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s