这就是那段代码!--郁闷!import java.sql.*;
import com.mysql.jdbc.Driver;
public class CreateCoffees
{
        public static void main(String[] args)
        {
                String url =  "jdbc:mysql://127.0.0.1:3306/uuWeather"; 
                 Connection con;
                String strsql = "CREATE TABLE XX_TEST1( ID int ) ";
                Statement stmt;
                try
                {
                        Class.forName("org.gjt.mm.mysql.Driver");
                }
                catch(java.lang.ClassNotFoundException e)
                {
                        System.err.print("ClassNotFoundException:");
                        System.err.println(e.getMessage());
                }
                try
                {
                        con = DriverManager.getConnection(url,"xiu","xiu
");
                        stmt = con.createStatement();
                        stmt.executeUpdate(strsql);
                        stmt.close();
                        con.close();
                }
                catch(SQLException e)
                {
                        System.err.println("SQLException"+e.getMessage());
                }
        }
}//另注:我用此帐号和密码登陆数据库,且执行上面的sql语句没问题.
小弟也在网上看见了关于此问题的解释,不过我感觉不适合我,真的!
其他网上的解释说明:
常见错误四:Invalid authorization specification   500 Servlet Exception
  java.sql.SQLException: Invalid authorization specification: Access   denied
  for user: '[email protected]' (Using password: YES)
 原因可能是:
  1、源代码中的主机名、数据库名、帐号或者密码输入错误;
  2、如果数据库名、帐号、密码均正确,那说明是主机名不匹配;
  3、如果使用数据源连库,检查数据源的设置和源代码中名称是否输入正确。  Solution:
  1、参见Resin install和Server test两部分;
  2、注意:数据库的连接不仅仅是帐号和密码决定的,而是由主机名、数据库名、用户名和密码四个参数决定的。

解决方案 »

  1.   

    我开始是没有环境试你的程序,用另外一种数据库是没问题,对mysql不怎么熟悉,就最近在windows下装了个玩。看兄弟你还没解决这个问题,我就想找个环境看看到底什么问题,昨晚我下了linux下的mysql安装到一台linux机器上,然后把这个程序拿去试验,也遇到跟你开始一样的问题,先是碰到"ClassNotFoundException:com.mysql.jdbc.Driver
    SQLExceptionNo suitable driver"这个问题,解决了后又碰到跟你现在一样的问题,有没注意到,提示信息是"Access denied for user: 'xiu@UUJabberTest' (Using password: YES)"而不是"Access denied for user: '[email protected]' (Using password: YES)",既然数据库名、帐号或者密码确认是无误的,应该就出在服务器名的解析上,你用use mysql到mysql库里查询下用户xiu用户的信息,应该是只有一条Host为localhost的记录,而root是两条记录,一个Host为localhost,一个为明确的机器名。我想问题就应该是这里了。你用grant select ,insert,update,delete ,create on *.* to Test@UUJabberTest IDENTIFIED BY '123456' ,其中UUJabberTest是你的linux机器名,这样就会在user表中加入一条记录,就应该不会再有Access denied的问题了,你试一下。
      

  2.   

    应该是 grant select ,insert,update,delete ,create on *.* to xiu@UUJabberTest IDENTIFIED BY 'xiu' ;你现在是用xiu用户连接的。