你用的这个root好像是redhat的根用户,不是mysql的root用户。
一、你可以直接更改mysql数据库中的user表,(注:有一定的危险慎重操作)。
c:\mysql
mysql>use mysql
mysql>update user set password="yourpassword" where user=root
二、可以借助管理工具如mysqlfront等

解决方案 »

  1.   

    update user set password=PASSWORD("yourpassword") where user=root
      

  2.   

    改过了之后记得要重新启动MySQL,否则不会生效
      

  3.   

    多谢各位大虾指教。但是,我根本就不能执行上面的命令。每次执行就说root@localhost是没有这个权限的用户。然后打个小刮号(password:yes),气死俺了。卸了重装还是不行。分不多,只是想弄个清楚。//bow
      

  4.   

    这个问题很奇怪,我是在win2000上面的,参考了上面的意见好像还有些问题。C:\>mysql -u root -p
    Enter password: *****
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9 to server version: 3.23.42-ntType 'help;' or '\h' for help. Type '\c' to clear the buffer.
    mysql> use mysql
    Database changed
    mysql> update user set password=password("jian") where user='root';
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0mysql> select * from user;
    +-----------+------+------------------+-------------+-------------+-------------+-------------+--------
    | Host      | User | Password         | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_
    +-----------+------+------------------+-------------+-------------+-------------+-------------+--------
    | localhost | root | 30fd2a005d21b57f | Y           | Y           | Y           | Y           | Y
    | %         |      |                  | N           | N           | N           | N           | N
    | localhost |      |                  | Y           | Y           | Y           | Y           | Y
    | %         | root | 30fd2a005d21b57f | Y           | Y           | Y           | Y           | Y
    +-----------+------+------------------+-------------+-------------+-------------+-------------+--------
    4 rows in set (0.00 sec)mysql> \q
    ByeC:\>mysql
    ERROR 2013: Lost connection to MySQL server during queryC:\>mysql -u root -p
    Enter password: *****                  //这里输入jian
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)C:\>mysql -u root -p
    Enter password: ****
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)C:\>mysql -u root -p
    Enter password: ******
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)C:\>mysql -u root -p
    Enter password: ******
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)C:\>mysql -u root
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)C:\>mysql -u root -p
    Enter password: ****************   //这里干脆输入那段password("jian") ,实在是异想天开的写法
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)C:\>mysql -u root -p
    Enter password: ****************  ////这里干脆输入那段加密数字
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)//下面没有用PASSWORD,我想保存为明文方式
    mysql> use mysql
    Database changed
    mysql> update user set password="jian" where user='root';
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0mysql> select * from user;
    +-----------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------
    | Host      | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload
    +-----------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------
    | localhost | root | jian     | Y           | Y           | Y           | Y           | Y           | Y         | Y
    | %         |      |          | N           | N           | N           | N           | N           | N         | N
    | localhost |      |          | Y           | Y           | Y           | Y           | Y           | Y         | Y
    | %         | root | jian     | Y           | Y           | Y           | Y           | Y           | Y         | Y
    +-----------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------
    4 rows in set (0.00 sec)重启mysql之后变为
    +-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+---------
    | Host      | User | Password         | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_p
    +-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+---------
    | localhost | root | 68d4f47c49a579c9 | Y           | Y           | Y           | Y           | Y           | Y         | Y
    | %         |      |                  | N           | N           | N           | N           | N           | N         | N
    | localhost |      |                  | Y           | Y           | Y           | Y           | Y           | Y         | Y
    | %         | root | jian             | Y           | Y           | Y           | Y           | Y           | Y         | Y
    +-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+---------
    感觉是把第一行加密了。C:\mysql\bin>mysql -u root -p
    Enter password: ****
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
    //测试还是不行,倒是不输入密码却可以进入,faint了
    以上每次修改密码之后均重启mysql之后再登陆的,看来得好好看看mysql的用户部分了,哪位知道是什么原因帮忙指点一下,头都搞大了.
      

  5.   

    查了些资料,总算把问题搞定了。我这里需要把那些权限flush一下。
    开始我以为只要正常shutdown server然后再起来就应该可以,结果我自己测试了一下是不行。非要mysqladmin flush-privileges才可以,而且不需要shutserver。
      

  6.   

    oh dear,拜托把你的解决办法详细介绍一下.我碰到的就是这个问题呀!
    多谢!
      

  7.   

    改完口令之后mysqladmin flush-privileges呀