Не ми е много ясно защо това стана проблем при моята XAMPP инсталация, тъй като аз също изпълнявам PHP 5.3.x на локалната кутия на сървъра и не изпитвах тези проблеми там. Това обаче е свързано с моя mySQL сървър, работещ в режим на криптиране „стара парола“. По-новите версии на PHP няма да позволяват тези видове връзки, така че трябва да актуализирате вашия mySQL сървър, за да използвате по-новото криптиране на паролата. Ето стъпките, ако приемем, че имате контрол върху mySQL сървъра. Ако не го направите, това излиза извън обхвата на моите познания.
-
намерете конфигурационния файл за mysql сървъра, наречен
my.cnf. Намерих моя в/etc/my.cnf. Можете да го редактирате сsudo nano /etc/my.cnf -
Потърсете ред, който казва
old_passwords=1и променете това наold_passwords=0. Вече казахте на сървъра, че следващия път, когато бъде стартиран и той бъде помолен да шифрова парола с помощта на командата PASSWORD(), той използва новото 41-знаково криптиране, а не 16-знаковото криптиране в „стар“ стил -
Сега трябва да рестартирате вашия mysql сървър/услуга. YMMV, но във Fedora това беше лесно направено с
sudo service mysqld restart. Проверете инструкциите на вашата ОС за рестартиране на демона или услугата mysql -
Сега трябва да редактираме нашия
userтаблица в mysql. Така че отворете интерактивна обвивка към mysql (на сървъра можете да въведетеmysql -uYourRootUsername -pYourRootPassword) -
Променете на
mysqlбаза данни. Това е базата данни, която съдържа всички добри неща за работа на сървъра и удостоверяване. Трябва да имате root достъп, за да работите с тази база данни. Ако получите „отказан достъп“, вие сте SOL. Съжалявам.use mysql;ще премине към тази база данни -
Сега искаме да актуализираме потребителя, който ви е причинил скръб. В крайна сметка вероятно ще искате да актуализирате всичките си потребители, но засега ние се фокусираме само върху потребителя, който е пуснал грешката.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME'; -
Сега просто трябва да кажете на mysql да използва новата парола за удостоверяване, когато този потребител се опита да се свърже.
flush privileges;.
Трябва да сте готови!