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.
-
cari file konfigurasi untuk server mysql bernama
my.cnf
. Saya menemukan milik saya di/etc/my.cnf
. Anda dapat mengeditnya dengansudo nano /etc/my.cnf
-
Cari baris yang bertuliskan
old_passwords=1
dan ubah menjadiold_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 -
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 -
Sekarang kita harus benar-benar mengedit
user
kita tabel di dalam mysql. Jadi buka shell interaktif ke mysql (di server Anda dapat mengetikmysql -uYourRootUsername -pYourRootPassword
) -
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 -
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';
-
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!