mysql 远程连接赋予权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'datech' WITH GRANT OPTION;
FLUSH PRIVILEGES;
MySQL 5.1
采用了基于密码混编算法的鉴定协议,它与早期客户端(4.1
之前)使用的协议不兼容。如果你将服务器升级到4.1
之上,用早期的客户端进行连接可能失败,并给出下述消息:
shell> mysql
客户端不支持服务器请求的鉴定协议:请考虑升级MySQL
客户端。
要想解决该问题,应使用下述方法之一:
·
升级所有的客户端程序,以使用4.1.1
或更新的客户端库。
·
用4.1
版之前的客户端连接到服务器时,请使用仍具有4.1
版之前风格密码的账户。
·
对于需要使用4.1
版之前的客户端的每位用户,将密码恢复为4.1
版之前的风格。可以使用SET
PASSWORD
语句和OLD_PASSWORD()
函数完成该任务:
·
mysql> SET PASSWORD FOR
·
-> 'some_user
'@'some_host
' = OLD_PASSWORD('newpwd
');
也可以使用UPDATE
和FLUSH
PRIVILEGES
:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd
')
-> WHERE Host = 'some_host
' AND User = 'some_user
';
mysql> FLUSH PRIVILEGES;
用你打算使用的密码替换前例中的“newpwd
”。MySQL
不能告诉你原来的密码是什么,因此,你需要选择新的密码。
·
通知服务器使用旧的密码混编算法:
1.
使用“--old-passwords
”选项启动mysqld
。
2.
对于已将密码更新为较长4.1
格式的每个账户,为其指定具有旧格式的密码。可以使用下述查询确定这些账户:
3.
mysql> SELECT Host, User, Password FROM mysql.user
4.
-> WHERE LENGTH(Password) > 16;
对于查询显示的每个账户记录,请使用Host
和User
值,并使用OLD_PASSWORD()
函数以及SET
PASSWORD
或UPDATE
之一指定密码,如前面所介绍的那样。
注释:
在早期的PHP
版本中,mysql
扩展不支持
MySQL
4.1.1
和更高版中的鉴定协议。无论使用的PHP
版本是什么,它均是正确的。如果你打算与MySQL
4.1
或更高版本一起使用mysql
扩展,需要使用前面介绍的选项之一,配置
MySQL
,以便与较早的客户端一起使用。mysqli
扩展(支持“
改进的MySQL”
,在
PHP
5
中增加)与MySQL 4.1
和更高版本中使用的改进的密码混编算法兼容,不需要对MySQL
进行特殊配置就能使用该MySQL
客户端库。
例如:UPDATE mysql.user SET Password = OLD_PASSWORD('datech') WHERE Host = '%' AND User = 'root';
FLUSH PRIVILEGES;
卸载时要手动删除:datadir目录,才能不影响下次安装。
分享到:
2010-07-12 21:07
浏览 680
分类:数据库
评论