权限问题,试试不用密码呢,mysql -h localhost -u root

解决方案 »

  1.   

    如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。 
      1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。 
          kill `cat /mysql-data-directory/hostname.pid` 
         你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。 
      2. 使用`--skip-grant-tables' 参数来启动 mysqld。 
      3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。 
    (其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。) 
      4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。) 
    还有一个办法
    就是将在其它计算机中安装一次  MySQL ,
    然后将它的安装目录下的 mysql 目录
    复制到你的计算机 中
      

  2.   

    我也遇到过同样问题,MYSQL4.0.9+tomcat4.1.18+redhat7.2查了好多办法,最终起作用的是:以身份ROOT:
     mysql> use mysql
     mysql> update user set HOST='%' where HOST='localhost';
     mysql> update db set HOST='%' where HOST='localhost'
     mysql> exit#bin/mysqladmin shutdown
    #bin/safe_musqld &
    这回再运行你的JSP程序就可以了。。
    其实出现哪个错误的原因主要是:
    权限的问题,更改user 和 DB中的 localhost 为 % 就可以了