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

Koneksi MySQL tidak berfungsi

Berikut adalah daftar periksa cepat untuk mengaktifkan Remote Connections untuk MySQL tetapi baca (6) terlebih dahulu. Jika saya melewatkan sesuatu, silakan edit.

1) Pengguna jarak jauh Anda terhubung melalui akun yang dibuat dengan user,host yang sesuai entri (lihat output dari select user,host from mysql.user order by 1,2 ). Jika tidak, lihat CREATE USER dan/atau GRANT perintah. Periksa output dari SHOW GRANTS untuk pengguna.

2) Anda telah melakukan flush privileges; (Beberapa mengatakan itu tidak perlu, yang lain mengatakan itu).

3a) Temukan file konfigurasi mysql Anda yang dirujuk dalam 3b) di bawah dengan meninjau info di Dokumen Ini (atau untuk Windows, kemungkinan turun C:\ProgramData\MySQL\MySQL Server 5.NNN jalur). Ini bervariasi menurut distro untuk Linux.

3b) Anda telah memodifikasi dan menyimpan my.ini (Windows) atau my.cnf (Linux) dan mengubah bind-address jauh dari 127.0.0.1 atau localhost , mendukung 0.0.0.0 . Dan Anda telah membuat dan keluarkan baris berikut:#skip-networking . Ini akan terlihat seperti ini:

[mysqld]
bind-address=0.0.0.0
#skip-networking

4) Mulai ulang daemon mysql. Cara melakukannya bervariasi menurut distro.

5) Masalah firewall. Pastikan portnya, defaultnya adalah 3306 , terbuka untuk dunia luar (yang mungkin sebenarnya hanya intranet Anda). Ini termasuk lapisan firewall lainnya, seperti Grup Keamanan AWS EC2, atau yang serupa, jika ada.

6) Pahami bahwa ada risiko keamanan yang terkait dengan ini. Kecuali Anda memiliki pengetahuan tentang mengekspos server mysql Anda ke koneksi jarak jauh, jangan lakukan ini.

7) Harap sering menjalankan penilaian keamanan dengan select pernyataan yang tercantum dalam 1. di atas termasuk meninjau SHOW GRANTS untuk para pengguna tersebut. Jangan memberi pengguna wildcard secara berlebihan jika tidak perlu. Sebaliknya, berikan pengguna hak istimewa minimal untuk menyelesaikan pekerjaannya.

8) Sering memeriksa upaya koneksi yang gagal melalui Log Umum dan Log Kesalahan seperti yang diperkenalkan secara singkat di bawah ini.

Untuk inbound, Anda dapat melihat log kueri umum.

select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to

Jadi semua kueri bisa login ke Log Kueri Umum jika pengaturan diaktifkan. Periksa log untuk "terhubung", tetapi terutama untuk Access denied for user untuk melihat upaya yang gagal. Lakukan ini secara teratur (tidak setiap beberapa tahun). Saya melakukannya setidaknya dua kali sehari. Catatan, Anda jelas dapat mengotomatiskan pelaporan melalui program eksternal. Dunia luar akan berdebar server Anda untuk masuk seperti gambar di bawah ini. Ini adalah kenyataan; persiapkan diri Anda untuk itu.

Lihat halaman manual untuk Log Kesalahan juga, dengan memperhatikan tingkat peringatan, dan pengaturan verbositas berdasarkan versi Anda.

Saya akan merekomendasikan seseorang untuk membuat salinan cadangan berdasarkan tanggal (dinamai demikian) dan menghapus file log setelah pencadangan untuk memulai yang baru setelah pencadangan. File log dapat bertambah besar ukurannya dengan cepat, terutama Log Umum. Jangan lupa apakah Anda mengaktifkan atau menonaktifkan setelan untuk masuk.

Anda dapat menggunakan dua log untuk menentukan apakah upaya koneksi Anda berhasil melewati firewall selama langkah-langkah di sini.




  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 SUM dan SUBTRACT menggunakan SQL?

  2. Konversikan skrip MySQL ke H2

  3. MySQL Sisipkan baris, pada duplikat:tambahkan sufiks dan masukkan kembali

  4. Impor file CSV langsung ke MySQL

  5. Bagaimana cara saya membuat MySQL menggunakan INDEX untuk permintaan tampilan?