Как ни странно, какое-то время это работало нормально, но мой компьютер недавно перезагрузился, и теперь мои приложения php не работают:
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]
Я видел, что решение заключалось в том, чтобы отключить old_passwords в конфигурации mysql ... за исключением того, что он не был включен в моем my.cfg (параметр вообще отсутствовал, и добавление его ничего не изменило) и не изменится в консоли :.
> SET SESSION old_passwords=FALSE;
ERROR 1231 (42000): Variable 'old_passwords' can't be set to the value of '0'
Я попытался посмотреть хэш пароля:
> select password('test');
+------------------+
| password('test') |
+------------------+
| 378b243e220ca493 |
+------------------+
И это коротко. Я ничего не могу найти в сети, почему он это делает, в документации mariadb говорится, что он должен быть длиной 41 символ, но это не так, и это нарушает все вещи php 5.4.
У меня нет идей, кроме того, чтобы просто сказать, забудьте об этом и переустановить старый php или что-то в этом роде. Кто-нибудь еще видел это? В идеале я бы хотел, чтобы пароли использовали новый формат хешей, чтобы php просто работал.