mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法

mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client

官方的说法是

MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. .....

如果你升级mysql到4.1以上版本后遇到以上问题,请先确定你的mysql client 是4.1或者更高版本.(WINDOWS下有问题你就直接跳到下面看解决方法了,因为MYSQL 在WINDOWS是client和server一起装上了的)

C:\MySQL Server 5.0\bin>mysql -hlocalhost -P3306 -uroot
-proot
请使用以下两种方法之一

其一:

mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

其二:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

上面"some_"的部分请按自己实际情况修改....
这样做后,连接就会正常了^^

=============================
MySQL Server Error:
Access denied for user 'root'@'localhost' (using password: no)

shell> mysql --user=root mysql
  mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost
  IDENTIFIED BY 'something' WITH GRANT OPTION;
  mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%"
  IDENTIFIED BY 'something' WITH GRANT OPTION;
  mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
  mysql> GRANT USAGE ON *.* TO dummy@localhost;
原文地址:https://www.cnblogs.com/dkblog/p/1980944.html