Welcome

Welcome, thanks to look my blog

Monday 31 March 2014

MySQL Remote Access

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;



[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
bind-address=192.168.1.101
skip-networking

~                                                                              
~                                                                              
~                                                                              
~                                                                              
-- INSERT --


No comments:

Post a Comment