Standard error with no solution for my own case:
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file [2000]
I have googled enough, trying different advices, but I still don't know what to try now, because I do such a query in MySQLManager:
SELECT LENGTH(Password) FROM mysql.user;
show variables like 'old_passwords';
and I got such a answer:
LENGTH(Password)
41
41
41
old_passwords: OFF
It seems to be right hash method for passwords (not 16), right old_password value (OFF), but I can't fix the error and even don't know what more I should try. I use OpenServer 5.2.2, with:
DB Server:
- Server: 127.0.0.1 via TCP/IP
- Server type: MySQL
- Server version: 5.5.45 - MySQL Community Server (GPL)
- Protocol version: 10
- User: max@localhost
- Server coding: UTF-8 Unicode (utf8)
Web-Server:
- Apache/2.2.31 (Win32)
- Version client DB: libmysql - mysqlnd 5.0.8-dev - 20102224
- PHP extension: mysqli
UPD: Can old-version php code encrypt password in old 16-bit code? Maybe this is the reason?