操作步骤如下:
1、用mysql原密码登陆mysql -uroot -p原密码
2、mysql>use mysql
   mysql>UPDATE user SET Password=('新密码') WHERE user='root';
   mysql>flush privileges;
   mysql>exit退出后再用mysql -uroot -p新密码就登陆不了,提示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)请高手指点一下,谢谢!

解决方案 »

  1.   

    应该是UPDATE user SET Password=PASSWORD('新密码') WHERE user='root';
      

  2.   

    UPDATE user SET Password=PASSWORD('新密码') WHERE User='root';
      

  3.   

    应该是UPDATE user SET Password=PASSWORD('新密码') WHERE user='root';-------------------------------但现在问题是我无论用原密码还是新密码均登陆不了
      

  4.   

    root密码要重置,然后 要用到UPDATE user SET Password=PASSWORD('新密码') WHERE user='root';
    重置方法:
    通过发送一个kill(不是kill -9)到mysqld服务器来关闭mysqld服务器。pid 被保存在一个.pid文件中,通常在MySQL数据库目录中: 
    kill `cat /mysql-data-directory/hostname.pid`你必须是一个UNIX root用户或运行服务器的相同用户做这个。使用--skip-grant-tables选项重启mysqld。 
    用mysql -h hostname mysql连接mysqld服务器并且用一条GRANT命令改变口令。见7.26 GRANT和REVOKE句法。你也可以用mysqladmin -h hostname -u user password 'new password' 进行。 
    用mysqladmin -h hostname flush-privileges或用SQL命令FLUSH PRIVILEGES来装载权限表。 
     6.12 怎样设置口令
    在前面小节的例子里说明了一个重要的原则:当你使用INSERT或UPDATE语句存储一个非空的口令时,你必须使用PASSWORD()函数加密它。这是因为在user表中以加密形式存储口令,而不是作为纯文本。如果你忘记这个事实,你可能像这样试图设置口令: shell> mysql -u root mysql 
    mysql> INSERT INTO user (Host,User,Password) VALUES('%','jeffrey','biscuit'); 
    mysql> FLUSH PRIVILEGES结果是纯文本值'biscuit'作为口令被存储在user表中。在用户jeffrey试图用这个口令连接服务器时,mysql客户用PASSWORD()加密它并且将结果送给服务器,服务器比较在user表中的值(它是纯文本值'biscuit')和加密的口令(而不是 'biscuit'),比较失败并且服务器拒绝连接: shell> mysql -u jeffrey -pbiscuit test
    Access denied因为当他们被插入user表时,口令必须被加密,相反,INSERT语句应该象这样被指定: mysql> INSERT INTO user (Host,User,Password)
           VALUES('%','jeffrey',PASSWORD('biscuit'));当你使用SET PASSWORD语句时,你也必须使用PASSWORD()函数: mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 如果你使用GRANT ... IDENTIFIED BY语句或mysqladmin password命令设置口令,PASSWORD()函数是不必要的。他们都考虑到为你加密口令,多以你可像这样指定一个口令'biscuit': mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';或shell> mysqladmin -u jeffrey password biscuit 
    注意: PASSWORD()不是以在Unix口令加密的同样方法施行口令加密。你不应该假定如果你的Unix口令和你的MySQL口令是一样的,PASSWORD()将导致与在Unix口令文件被存储的同样的加密值。见6.2 MySQL 用户名和口令。 
      

  5.   

    谢谢楼上的,不会kill只好重装mysql了,这回记住了改密码一定加上password()函数了。