gpt4 book ai didi

共享服务器上的 PHP 5.4 旧身份验证,无需编辑 mysql 服务器即可修复

转载 作者:行者123 更新时间:2023-11-29 14:20:52 25 4
gpt4 key购买 nike

我刚刚将我的开发盒的 PHP 升级到最新版本 5.4.5。该开发机器连接到远程 MySQL 服务器,该服务器驻留在我从托管公司租用的共享服务器上。

尝试使用简单的 mysql_connect('myserver.com', 'user', 'password') 连接到我的远程 MySQL 服务器会导致以下错误:

Warning: mysql_connect(): 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 in file.php on line 2

简单地,按照建议,只需执行:

SET PASSWORD = PASSWORD('my-password');

不会改变任何事情。执行时同样如此

SET SESSION old_passwords=FALSE;

经过一番搜索,我意识到我需要对 MySQL 服务器进行相当深入的访问才能解决这个问题,但我没有。尝试执行此查询:

UPDATE mysql.user SET Password=PASSWORD('my-password')
WHERE User='my_user' AND Host='my-server';
FLUSH PRIVILEGES;

简单地给我以下错误:

1142 - UPDATE command denied to user 'u0112918'@'www10.aname.net' for table 'user'

到目前为止,要求公司为我执行查询的请求尚未成功。所以我的问题是,是否有任何方法可以在客户端修复此问题,而不涉及 MySQL 服务器?

最佳答案

嗯,尝试通过 PhpMyAdmin 以外的工具执行以下查询,例如 Mysql Workbench 或通过 shell:

SET SESSION old_passwords=0; 
SET PASSWORD = PASSWORD('passwordString');

您应该被允许更改自己的密码,而无需对用户表进行 DML 权限。

编辑:因为它没有解决问题 - 当为数据库启用“read_only”时,您需要 super 权限来更改(甚至是您自己的)密码( http://dev.mysql.com/doc/refman/5.5/en/set-password.html )

关于共享服务器上的 PHP 5.4 旧身份验证,无需编辑 mysql 服务器即可修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com