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目录,才能不影响下次安装。