jdbc连不上mysql 报错为 Access denied for user 'root'@'***' (using password: YES)



import small_program.linksql.Student;
import small_program.linksql.utils.JDBCUtils;

import java.sql.*;
import java.util.ArrayList;

public class StudentDaoimpl implements StudentDao {
    @Override
    public ArrayList<Student> findAll()  {
        ArrayList<Student> students = new ArrayList<>();
        Connection connection = null;
        Statement statement = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://10.200.36.189:3306/db14","root","123456");
            //注册,连接
            //获取执行对象
//            connection = JDBCUtils.getConnection();
            statement = connection.createStatement();
            //执行SQL并接收返回结果集
            String sql = "select * from student";

            rs = statement.executeQuery(sql);
            //处理结果
            while (rs.next()) {
                Integer sid = rs.getInt("sid");
                String name = rs.getString("name");
                Integer age = rs.getInt("age");
                Date date = rs.getDate("date");

                Student student = new Student(sid, name, age, date);
                students.add(student);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.close(rs,statement,connection);
        }
    return students;
    }

    @Override
    public Student findById(Integer id) {
        Student student1 = new Student();
        Connection connection = null;
        Statement statement = null;
        ResultSet rs = null;
        try {
            //注册,连接
            //获取执行对象
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://10.200.36.189:3306/db14","root","123456");
//            connection = JDBCUtils.getConnection();
            statement = connection.createStatement();
            //执行SQL并接收返回结果集
            String sql = "select * from student where sid = id";

            rs = statement.executeQuery(sql);
            //处理结果
            while (rs.next()) {
                Integer sid = rs.getInt("sid");
                String name = rs.getString("name");
                Integer age = rs.getInt("age");
                Date date = rs.getDate("date");
                student1.setSid(sid);
                student1.setName(name);
                student1.setAge(age);
                student1.setBirthday(date);

            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.close(statement,connection);
            return student1;
        }
    }
    @Override
    public int insert(Student student) {
        return 0;
    }

    @Override
    public int update(Student student) {
        return 0;
    }

    @Override
    public int del(Integer id) {
        return 0;
    }
}

不是密码问题

一般数据库不允许其他机器上用root用户登录,你先建个其他的账号密码,然后授权你指定的IP可以访问,就可以链接了

先试试单独用mysql这个账号用户名能不能连上,还有就是这个,单个这个不加参数好像也不可以,jdbc:mysql://10.200.36.189:3306/db14,尝试下吧

(1MySQL的服务器停止了
(2用户的端口号或者IP导致拒绝访问
(3MySQL的配置文件错误(my.ini等文件)
(4root用户的密码错误