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

Bagaimana cara mengakses layanan web database MySQL melalui LAN?

Jika ini MySQL, jaringan server database tidak diaktifkan secara default. Untuk mengaktifkan jaringan di MySQL, Anda perlu menemukan file konfigurasi MySQL aktif bernama my.cnf . Dan edit.

Saya akan menjelaskan bagaimana melakukan ini di Ubuntu 12.04, tetapi instruksinya serupa untuk kebanyakan instalasi Linux.

Aktifkan Jaringan MySQL

Pertama, buka file menggunakan editor seperti nano . Anda mungkin perlu menjalankan perintah melalui sudo :

sudo nano /etc/mysql/my.cnf

Kemudian cari area di file konfigurasi Anda dengan bind-address pilihan:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1

Sekarang ubah bind-address pengaturan sebagai berikut:

bind-address            = 0.0.0.0

Setelah selesai simpan file &restart MySQL seperti ini:

sudo service mysql restart

Dan sekarang database MySQL Anda akan dapat mengambil koneksi non-localhost dari mesin jarak jauh.

Pastikan Port MySQL 3306 Terbuka

Meskipun demikian, meskipun jaringan diaktifkan, Anda tetap harus memeriksa apakah Anda dapat terhubung ke mesin jarak jauh dari baris perintah menggunakan alat jaringan seperti nmap . Anda mungkin memiliki firewall di 192.168.1.10 memblokir port MySQL 3306 jadi Anda perlu memeriksa apakah itu terbuka atau tertutup seperti ini:

nmap 192.168.1.10 -p3306

Dan jika port 3306 terbuka, ini akan menjadi tanggapan; perhatikan open di bawah STATE :

Starting Nmap 6.40 ( http://nmap.org ) at 2014-06-10 10:34 EDT
Nmap scan report for 192.168.1.10
Host is up (0.0035s latency).
PORT     STATE SERVICE
3306/tcp open  mysql

Tetapi jika port 3306 ditutup, Anda akan mendapatkan ini; perhatikan closed di bawah STATE :

Starting Nmap 6.40 ( http://nmap.org ) at 2014-06-10 10:34 EDT
Nmap scan report for 192.168.1.10
Host is up (0.0035s latency).
PORT     STATE  SERVICE
3306/tcp closed mysql

Periksa Hibah Pengguna MySQL Anda

Sekarang setelah semua selesai, server database MySQL Anda harus dapat diakses di jaringan. Namun demikian, Anda perlu memastikan pengguna basis data yang Anda gunakan diizinkan untuk terhubung dari mesin jarak jauh di LAN Anda. Jadi login ke MySQL &jalankan perintah ini untuk melihat hibah apa yang mungkin dimiliki pengguna:

SELECT user, host FROM `mysql`.`user`;

Ini akan menampilkan daftar pengguna &host yang terhubung ke pengguna tersebut di MySQL. Masalahnya adalah sebagian besar pengguna hanya diberikan hak akses ke localhost atau 127.0.0.1 . Beberapa diberikan host wildcard % . Anda perlu melihat daftar itu dan melihat apakah pengguna yang ingin Anda gunakan memiliki host wildcard (% ) atau alamat IP tertentu yang terhubung dengannya. Anda dapat memeriksa GRANT user pengguna s dengan menjalankan baris seperti ini; tentu saja ubah [your_database_user] dan [hostname] untuk mencocokkan setelan Anda:

SHOW GRANTS FOR '[your_database_user]'@'[hostname]';

Itu akan menunjukkan kepada Anda daftar GRANT yang tersedia s untuk pengguna di host tertentu. Jika mereka memiliki GRANT s yang memungkinkan akses jarak jauh—seperti menggunakan karakter pengganti % host—maka Anda sudah siap. Jika mereka tidak memiliki GRANT s Anda dapat menjalankan perintah MySQL berikut; tentu saja ubah [your_database] dan [your_database_user] untuk mencocokkan setelan Anda:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `[your_database]`.* TO '[your_database_user]'@'192.168.0.0/255.255.0.0';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `[your_database]`.* TO '[your_database_user]'@'10.0.0.0/255.0.0.0';
FLUSH PRIVILEGES;

Keduanya GRANT baris menerapkan seperangkat hak akses yang cukup standar ke database. Baris pertama menerapkannya ke koneksi apa pun dalam rentang jaringan LAN 192.168.x.x . Baris kedua menerapkannya ke koneksi apa pun dalam rentang jaringan LAN 10.x.x.x . Saya suka melakukan itu untuk mencakup semua basis di jaringan internal. FLUSH PRIVILEGES; . terakhir baris pada dasarnya memberitahu MySQL untuk memuat ulang tabel hak pengguna yang memungkinkan hibah tersebut berlaku.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggunakan variabel pengguna dalam klausa LIKE MySQL?

  2. Bagaimana cara memperbarui file PDF yang sudah ditambahkan ke database di PHP?

  3. Bagaimana cara mendapatkan struktur tabel dari file .frm menggunakan PHP?

  4. PHP Mysql PDO jumlah variabel terikat tidak sesuai dengan jumlah token

  5. Bagaimana cara memilih ID baris mysql untuk klausa WHERE pada UPDATE, INSERT, DELETE melalui php?