首页 电脑 电脑学堂 查看内容

PHP 5 连接 mysql 5的认证协议问题

2005-1-20 06:08 644 0

摘要: 来源:LinuxAid MYSQL 4.1以后, 采用了一种新的用户认证协议, 对于老的客户端会出现不支持认证协议的错误, 以下是官方网站的解决方法 r      1Upgrade all c...
关键词: password MYSQL user 协议 client 认证 OLD use 4.1 host

来源:LinuxAid MYSQL 4.1以后, 采用了一种新的用户认证协议, 对于老的客户端会出现不支持认证协议的错误, 以下是官方网站的解决方法 r      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.      恢复已经升级了口令到老样式      本文参照了 http://dev.mysql.com/doc/mysql/en/Old_client.html
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部