日期:2011-05-02 15:44:00 来源:本站整理
PHP5衔接mysql5的认证协议问题[MySQL防范]
本文“PHP5衔接mysql5的认证协议问题[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
MySQL 4.1今后, 采取了一种新的用户认证协议, 关于老的客户端会呈现不支持认证协议的错误, 以下是官方网站的办理办法﹔
1Upgrade all client programs to use a 4.1.1 or newer client library.
更新客户端库,这需求更新PHP的扩大库,关于老的api PHP已经不供应了这样的扩大库了
2When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
利用从前成立的账号衔接,关于在新的认证协议下成立的账户就不行了
3Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function: mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
Alternatively, use UPDATE and FLUSH PRIVILEGES: mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
Substitute the password you want to use for ``newpwd'' in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.
这是一个不错的办法,新成立的账号采取老式的加密协议
4Tell the server to use the older password hashing algorithm:
Start mysqld with the --old-passwords option.
这样新认证协议的长处就没法利用了
5Assign an old-format password to each account that has had its password updated to the longer 4.1 format. You can identify these accounts with the following query: mysql> SELECT Host, User, Password FROM mysql.user
-> WHERE LENGTH(Password) > 16;
For each account record displayed by the query, use the Host and User values and assign a password using the OLD_PASSWORD() function and either SET PASSWORD or UPDATE, as described earlier.
恢复已经进级了口令到老款式 以上是“PHP5衔接mysql5的认证协议问题[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论