2004-12-31 10:14
cloudtuo
如果需要出现使用phpmyadmin时的提示用户名、密码框,则修改config.inc.php这里:
$cfg['Servers'][$i]['auth_type'] = 'http';
如果把http改为config,则不会出现提示框,登陆帐户信息则从config.inc.php读取
用phpmyadmin更改root口令后,无论在config.inc.php如何配置,都无法登陆,出现Client does not support authentication protocol
这是由于在php4.1版本后,密码的算法进行了改变:
这是老的算法:
mysql> SELECT PASSWORD('mypass');
+--------------------+
| PASSWORD('mypass') |
+--------------------+
| 6f8c114b58f2ce9e |
+--------------------+
这是新的算法:
mysql> SELECT PASSWORD('mypass');
+-----------------------------------------------+
| PASSWORD('mypass') |
+-----------------------------------------------+
| *43c8aa34cdc98eddd3de1fe9a9c2c2a9f92bb2098d75 |
+-----------------------------------------------+
因此,当我们用的php是4.1版本以上时,如果用phpmyadmin改了口令,就不行了;但可以这样解决:
mysqlbin> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
mysql> SET PASSWORD FOR
-> '用户名'@'主机名' = OLD_PASSWORD('新的密码');
Alternatively, use UPDATE and FLUSH PRIVILEGES:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('新的密码')
-> WHERE Host = '用户名' AND User = '主机名';
mysql> FLUSH PRIVILEGES;
这样完成后,我们就可以恢复到旧的密码算法了,当然也可以在config.inc.php正常的配置了
很久没动了,我也是刚遇到的问题,刚刚解决的,希望可以帮助到大家!!!
2005-01-01 11:56
cloudtuo
更正一个地方:
原:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('新的密码')
-> WHERE Host = '用户名' AND User = '主机名';
改为:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('新的密码')
-> WHERE Host = '主机名' AND User = '用户名';