Не ми е много ясно защо това стана проблем при моята 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;
.
Трябва да сте готови!