Cara Mengaktifkan Remote Access MySQL Database Server

Secara default, akses remote ke server database MySQL dinonaktifkan karena alasan keamanan. Namun, terkadang Anda perlu memberikan akses jarak jauh ke database server dari rumah atau server web. Postingan ini akan menjelaskan bagaimana mensetup akun pengguna dan mengakses server MySQL dari jarak jauh pada sistem Linux atau Unix.

1. Login Menggunakan SSH

Pertama, login melalui ssh ke server database MySQL jauh. Anda mungkin perlu masuk ke server MySQL Anda sebagai pengguna root:

ssh user@server1.cyberciti.biz
### login as the root using su or sudo ##
su
# or use sudo  ##
sudo -i

ATAU langsung masuk sebagai root user jika diijinkan:

ssh root@www.hcr-tech.com

2. Edit the my.cnf file

Setelah terhubung Anda perlu mengedit file konfigurasi server MySQL my.cnf menggunakan editor teks seperti vi:

– Jika Anda menggunakan file Debian / Ubuntu Linux terletak di lokasi /etc/mysql/my.cnf.
– Jika Anda menggunakan file Linux Red Hat Linux / Fedora / Centos terletak di lokasi /etc/my.cnf.
– Jika Anda menggunakan FreeBSD Anda perlu membuat lokasi file /var/db/mysql/my.cnf.

Edit /etc/my.cnf, jalankan:

vi /etc/my.cnf

3. Setelah file dibuka, cari baris yang berbunyi sebagai berikut

[mysqld]

Pastikan jalur skip-networking dikomentari (atau hapus garis) dan tambahkan baris berikut

bind-address=YOUR-SERVER-IP

Misalnya, jika IP server MySQL anda 65.55.55.2 maka seluruh blok seharusnya terlihat seperti berikut ini:

[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
....
..
....
  • bind-address: Alamat IP
  • skip-networking : Jangan menggunkan koneksi TCP / IP sama sekali. Semua interaksi dengan mysqld harus dilakukan melalui soket Unix. Pilihan ini sangat dianjurkan untuk sistem dimana hanya permintaan lokal yang diizinkan. Karena Anda perlu mengizinkan koneksi jarak jauh, baris ini harus dihapus dari my.cnf atau memasukkannya ke dalam keadaan komentar.

4. Save and Close the file

Jika Anda menggunakan Debian / Ubuntu Linux, ketik perintah berikut untuk me-restart server mysql:
# /etc/init.d/mysql restart
atau
# systemctl restart mysql
Jika Anda menggunakan RHEL / CentOS / Fedora / Scientific Linux, ketik perintah berikut untuk me-restart server mysql:
# /etc/init.d/mysqld restart
atau
# systemctl restart mysqld
Jika Anda menggunakan FreeBSD, ketik perintah berikut untuk me-restart server mysql:
# /usr/local/etc/rc.d/mysql-server restart
atau
# service mysql-server restart

5. Berikan akses ke alamat IP jauh

Connect to mysql server:
$ mysql -u root -p mysql

AKSES GRANT TERHADAP DATABASE BARU

Jika Anda ingin menambahkan database baru yang disebut foo untuk user bar dan remote IP 202.54.10.20 maka Anda perlu mengetikkan berikut ini.

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

BAGAIMANA MEMBERIKAN AKSES TERHADAP DATABASE YANG ADA?

Mari kita asumsikan bahwa Anda selalu membuat koneksi dari remote IP yang disebut 202.54.10.20 untuk database yang disebut webdb untuk pengguna webadmin, Untuk memberikan akses ke alamat IP ini ketik perintah berikut

mysql> prompt for existing database, enter:
mysql> update db set Host='202.54.10.20' where Db='webdb';
mysql> update user set Host='202.54.10.20' where user='webadmin';

6. Keluar dari MySQL

Ketik exit command untuk logout mysql:mysql> exit

7. Buka port 3306

Anda perlu membuka port TCP 3306 menggunakan firewall iptables atau BSD pf.

IPTABEL ATURAN UNTUK MEMBUKA LINUX IPTABLES FIREWALL

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

ATAU hanya mengizinkan koneksi jarak jauh dari server web Anda berada di 10.5.1.3:

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

ATAU hanya mengizinkan koneksi jarak jauh dari subnet lan Anda 192.168.1.0/24:

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

Akhirnya simpan semua aturan (perintah khusus RHEL / CentOS):
# service iptables save

FIRFALL FREEBSD / OPENBSD / NETBSD PF FIREWALL (/ETC/PF.CONF)

Gunakan yang berikut ini untuk membuka port # 3306 pada sistem berbasis BSD:

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

ATAU hanya mengizinkan akses dari server web Anda yang berada di 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

8. Menguji

Dari sistem remote atau desktop Anda ketik perintah berikut:
$ mysql -u webadmin -h 65.55.55.2 -p

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

Anda juga dapat menggunakan perintah telnet atau nc untuk terhubung ke port 3306 untuk tujuan pengujian:
$ echo X | telnet -e X 65.55.55.2 3306
OR
$ nc -z -w1 65.55.55.2 3306
Sample outputs:

Connection to 65.55.55.2 3306 port [tcp/mysql] succeeded!
Rich Snippets
Published
Article
Cara Mengaktifkan Remote Access MySQL Database Server
Ratings
51star1star1star1star1star
Azizul Hakim

Satu-satunya sumber pengetahuan adalah pengalaman

Leave a Reply