【发布时间】:2015-09-01 07:47:32
【问题描述】:
我在运行 web 应用程序后尝试连接 mysql 数据库,但出现如下错误: HTTP 状态 500 - 内部服务器错误 类型异常报告 消息内部服务器错误 描述 服务器遇到一个内部错误,阻止它完成这个请求。 例外 javax.servlet.ServletException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 用户''@'localhost'拒绝访问数据库'mysqluser=root'
根本原因
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:用户“@'localhost”拒绝访问数据库“mysqluser=root”
note GlassFish Server Open Source Edition 4.0 日志中提供了异常的完整堆栈跟踪及其根本原因。 GlassFish Server 开源版 4.0
我的 JSP 代码是:
`<%@ page import ="java.sql.*" %>
<%<br>String fname = request.getParameter("fname");
`String lname = request.getParameter("lname");
`String email = request.getParameter("email");
`String user = request.getParameter("uname");
`String pwd = request.getParameter("pass");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql"+ "user=root");
Statement st = con.createStatement();
`int i = st.executeUpdate("insert into members(first_name, last_name,email, uname, pass) values ('" + fname + "','" + lname + "','" + email + "','" + user + "','" + pwd + "')");
`if (i > 0)
`{
`out.print("Registration Successfull!"+"<ahref='index.jsp'>Go to Login</a>");
`}
`else {
`response.sendRedirect("index.jsp");
}
%>
`
我的数据库没有任何密码。 我通过以下步骤在 netbeans 中建立连接: 第 1 步:服务选项卡 第 2 步:右键单击数据库并选择新建连接... 第 3 步:按照步骤操作。 测试连接成功然后完成。 我正在使用 linux Fedora 20 操作系统
【问题讨论】:
-
一个好的开始方法是将所有业务逻辑从 JSP(仅用于 UI 表示)移动到 servlet。下一部分,因为你有一个完整的堆栈跟踪(你没有显示)查看这可能有助于更多地了解这个问题。
-
获取连接时不需要添加你的mysql数据库服务器的用户名和密码吗?
-
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql"+ "user=root") 这是问题行;