Marbles 发表于 2022-6-1 22:39

javaweb连数据库一直连不上

本帖最后由 Marbles 于 2022-6-2 14:04 编辑

1.数据库情况
我想连user这个数据库

用户名root 密码root

2.javaweb情况
①NewFile.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import ="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello
<%
      try {
                // 加载数据库驱动,注册到驱动管理器
                Class.forName("com.mysql.jdbc.Driver");

                // 数据库连接字符串
                String url = "jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8";
                // 数据库用户名
                String username = "root";
                // 数据库密码
                String password = "root ";
                // 创建Connection连接
                Connection conn = DriverManager.getConnection(url,username,password);
                //判断 数据库连接是否为空
                if(conn != null){
                        //输出连接信息
                        out.println("数据库连接成功!");
                        //关闭数据库连接
                        conn.close();
                }else{
                        //输出连接信息
                        out.println("数据库连接失败!");
                }
      } catch (ClassNotFoundException e) {
                e.printStackTrace();
      } catch (SQLException e) {
                e.printStackTrace();
      }
%>

</body>
</html>

②项目结构概况

3.运行后报错
①警告: {Context} Setting property 'source' to 'org.eclipse.jst.jee.server:t' did not find a matching property.
②警告: {Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TestDB001' did not find a matching property.
③java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)






4.尝试增加ServerOption选项后clean,没有解决。尝试网上数据库重启,重启失败。



尝试增加root远程登录,语句报错,失败

pojie2001 发表于 2022-6-2 07:12

1,检查数据库服务正常启动
2.mysql 用户登录要检查用户名,密码,ip地址,你的密码root是不是多写了个空格,先在命令行登录测试下

wukaixuan 发表于 2022-6-2 08:38

命令窗口登录试一下,看是不是密码错误了

layuai 发表于 2022-6-2 08:49

你直接终端测试账号密码是否能连接,有没有打错的情况

soenluzy 发表于 2022-6-2 10:20

应该是用户密码错了,可以打开cmd,然后用命令去连mysql试试,(-d后面接的库名)
mysql -h127.0.0.1 -P3301 -uUsername -pPassword -d user

soenluzy 发表于 2022-6-2 10:29

如果是测试写个类就行,我自己写了一个你参考下
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCTestTool {
    static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
    static String USER = "root";
    static String PASS = "123456";

    public JDBCTestTool(){
                //这里是读取配置文件db.properties,如果没有可以注释掉
                /**
      Properties prop = new Properties();
      try {
            String path = JDBCTestTool.class.getResource("/").toString();
            path = path.replaceAll("file:", "")+"db.properties";
            prop.load(new FileInputStream(path));
            System.out.println(prop.getProperty("driver"));
            JDBC_DRIVER = prop.getProperty("driver");
            DB_URL = prop.getProperty("url");
            USER = prop.getProperty("username");
            PASS = prop.getProperty("password");
            System.out.println(JDBC_DRIVER+" , url: "+DB_URL+", user: "+USER+", pwd: "+PASS);
      } catch (Exception e) {
            e.printStackTrace();
      }
                **/
    }

    public Connection getConnection(){
      Connection conn = null;
      try{
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);

            // 打开链接
            System.out.println("连接数据库...");
                        DriverManager.setLoginTimeout(15);
            conn = DriverManager.getConnection(DB_URL,USER,PASS);

            // 执行查询
            System.out.println(" 连接成功: "+conn.toString());
      }catch(Exception e){
            e.printStackTrace();
                       
      }
      return conn;
    }

    public static void main(String[] args) {
      JDBCTestTool jdbcTestTool = new JDBCTestTool();
      Connection conn = null;
      try{
            conn = jdbcTestTool.getConnection();
      }catch(Exception e){
            e.printStackTrace();
      }finally{
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
      }
      System.out.println("Goodbye!");
    }
}

Marbles 发表于 2022-6-2 14:06

已解决,多谢各位。密码多打了个空格{:301_974:}
页: [1]
查看完整版本: javaweb连数据库一直连不上