Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Aktifkan akses jarak jauh ke database MySQL

Biasanya akses jarak jauh ke server database MySQL dinonaktifkan karena alasan keamanan. Namun, terkadang Anda perlu menyediakan akses jarak jauh ke server database MySQL dari rumah atau server web. Anda dapat mengikuti langkah-langkah ini untuk mengaktifkannya.

Langkah 1 :Masuk menggunakan SSH (jika server berada di luar lingkungan atau intranet Anda)

Pertama, login melalui ssh ke server database MySQL jarak jauh dari windows menggunakan Putty atau dari Linux menggunakan SSH

Langkah 2 :Edit file my.cnf

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

  • Di Linux Debian file terletak di /etc/mysql/my.cnf lokasi.
  • Di Linux Red Hat/Fedora/Centos Linux file terletak di /etc/my.cnf lokasi.

Untuk mengedit /etc/my.cnf, jalankan:

# vi /etc/my.cnf
  • Di Windows , file my.ini terletak di C:\Program Files\MySQL\MySQL Server X.Y (X.Y adalah nomor versi server MySQL)

Untuk windows, buka file my.ini di notepad

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

[mysqld]

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

bind-address=YOUR-SERVER-IP

Misalnya, jika IP server MySQL Anda adalah 173.234.21.12 maka seluruh blok akan terlihat seperti 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    = 173.234.21.12
# skip-networking
....

Dimana,

  • mengikat-alamat :alamat IP untuk diikat.
  • lewati jaringan :Jangan dengarkan koneksi TCP/IP sama sekali. Semua interaksi dengan mysqld harus dilakukan melalui soket Unix. Opsi ini sangat disarankan untuk sistem yang hanya mengizinkan permintaan lokal. Karena Anda perlu mengizinkan koneksi jarak jauh, baris ini harus dihapus dari my.cnf atau dikomentari.

Langkah 4:Simpan dan Tutup file

Pada Debian / Ubuntu Linux, ketik perintah berikut untuk me-restart server mysql:

# /etc/init.d/mysql restart

Pada RHEL / CentOS / Fedora / Scientific Linux, ketik perintah berikut untuk me-restart server mysql:

# /etc/init.d/mysqld restart

Di Windows, buka command prompt sebagai Administrator dan ketik

net stop MySQL
net start MySQL

Langkah 5:Berikan akses ke alamat IP jarak jauh

Berikan akses ke database baru

Jika Anda ingin menambahkan database baru bernama foo untuk bilah pengguna dan IP jarak jauh 162.72.20.23 maka Anda perlu mengetikkan perintah berikut di prompt mysql:

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

Berikan Akses Ke Basis Data yang Ada

Mari kita asumsikan bahwa Anda selalu membuat koneksi dari IP jarak jauh yang disebut 162.72.20.23 ke database yang disebut webdb untuk webadmin pengguna. Untuk memberikan akses ke alamat IP ini untuk database yang ada, ketik perintah berikut di prompt mysql:

mysql> update db set Host='162.72.20.23' where Db='webdb';
mysql> update user set Host='162.72.20.23' where user='webadmin';

Langkah 6:Keluar dari MySQL

Ketik perintah keluar untuk keluar dari mysql:

mysql> exit

Langkah 7:Buka port 3306

Contoh aturan iptables untuk membuka firewall iptables Linux

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

ATAU hanya izinkan koneksi jarak jauh dari server web Anda yang terletak di 162.72.20.23:

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

ATAU hanya izinkan 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

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

Di windows, buka Control Panel> Windows Firewall> Add inbound rule for port 3306

Langkah 8:Uji akses jarak jauh ke database MySQL

Dari sistem jarak jauh atau desktop Anda, ketik perintah berikut:

$ mysql -u webadmin –h 173.234.21.12 –p

Di windows, jalankan program baris perintah MySQL, dan masuk sebagai administrator dengan mengetikkan perintah berikut dari folder root MySQL (mis. Program Files\MySQL\MySQL Server 5.5\bin):

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p

Di mana,

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bidang integer MySQL dikembalikan sebagai string dalam PHP

  2. Panduan Merancang Basis Data Untuk Acara Kalender Dan Pengingat Di MySQL

  3. MySQL memuat nilai NULL dari data CSV

  4. MySQL Bagaimana Anda INSERT INTO tabel dengan subquery SELECT mengembalikan beberapa baris?

  5. Bagaimana cara menulis pernyataan IF ELSE dalam kueri MySQL?