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

Koneksi mySQL jarak jauh tidak dapat terhubung ke MySQL 4.1+ menggunakan kesalahan otentikasi tidak aman lama dari XAMPP

Saya tidak begitu jelas mengapa ini menjadi masalah pada instalasi XAMPP saya, karena saya juga menjalankan PHP 5.3.x pada kotak lokal server dan tidak mengalami masalah tersebut di sana. Namun, ini ada hubungannya dengan server mySQL saya yang berjalan dalam mode enkripsi "kata sandi lama". Versi PHP yang lebih baru tidak akan mengizinkan koneksi semacam itu, jadi Anda perlu memperbarui server mySQL Anda untuk menggunakan enkripsi kata sandi yang lebih baru. Berikut adalah langkah-langkahnya, dengan asumsi Anda memiliki kendali atas server mySQL. Jika tidak, itu di luar jangkauan pengetahuan saya.

  1. cari file konfigurasi untuk server mysql bernama my.cnf . Saya menemukan milik saya di /etc/my.cnf . Anda dapat mengeditnya dengan sudo nano /etc/my.cnf

  2. Cari baris yang bertuliskan old_passwords=1 dan ubah menjadi old_passwords=0 . Anda sekarang telah memberi tahu server bahwa saat dijalankan berikutnya, dan diminta untuk mengenkripsi kata sandi menggunakan perintah PASSWORD(), server menggunakan enkripsi 41 karakter baru daripada enkripsi gaya 'lama' 16 karakter

  3. Sekarang Anda harus me-restart server / layanan mysql Anda. YMMV, tetapi di Fedora itu mudah dilakukan dengan sudo service mysqld restart . Periksa instruksi OS Anda untuk memulai ulang daemon atau layanan mysql

  4. Sekarang kita harus benar-benar mengedit user kita tabel di dalam mysql. Jadi buka shell interaktif ke mysql (di server Anda dapat mengetik mysql -uYourRootUsername -pYourRootPassword )

  5. Ubah ke mysql basis data. Ini adalah database yang menyimpan semua hal baik untuk operasi dan otentikasi server. Anda harus memiliki akses root untuk bekerja dengan database ini. Jika Anda mendapatkan 'akses ditolak' Anda SOL. Maaf. use mysql; akan beralih ke database itu

  6. Sekarang kami ingin memperbarui pengguna yang membuat Anda sedih. Pada akhirnya Anda mungkin ingin memperbarui semua pengguna Anda, tetapi untuk saat ini, kami hanya berfokus pada pengguna yang membuat kesalahan. update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';

  7. Sekarang Anda hanya perlu memberi tahu mysql untuk menggunakan kata sandi baru untuk otentikasi ketika pengguna itu mencoba untuk terhubung. flush privileges; .

Anda harus baik-baik saja!




  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 membuat tautan berikutnya dan sebelumnya dengan php?

  2. SUM() Fungsi di MySQL

  3. Penanda Leaflet yang mengidentifikasi secara unik

  4. Bagaimana menemukan perbedaan waktu rata-rata antara baris dalam sebuah tabel?

  5. kerusakan injeksi mysql?