试图获取一个Java程序以连接到Mac上的本地Mysql数据库

问题描述 投票:0回答:3

我正在尝试构建一个Jframe应用,该应用从本地mysql数据库获取信息并填写GUI中的列表视图。我无法使程序连接到数据库。我在Mac上,我想知道这是否与操作系统中的权限有关,或者我只是在代码中缺少某些内容。

package dataBaseConnection;
    import java.sql.*;
    import javax.swing.*;

    public class DBConnection 
    {

        public static Connection dbConnection()
        {   
            try 
            {
                String driver = "com.mysql.cj.jdbc.Driver";
                String url = "jdbc:mysql://mysql@localhost:3306/login";
                String username = "root";
                String password = "TestTestTestTest";

                Class.forName(driver);

                Connection conn = DriverManager.getConnection(url, username, password);

                JOptionPane.showMessageDialog(null, "Connected to the database");

                return conn;
            }

            catch (Exception e) 
            {
                JOptionPane.showMessageDialog(null, "Could not connect to the database...");

                return null;
            }
        }
    }


    package dataBaseConnection;

    import java.awt.EventQueue;
    import java.sql.*;
    import javax.swing.JFrame;

    public class Login {

        private JFrame frame;

        public static void main(String[] args) 
        {
            EventQueue.invokeLater(new Runnable() 
            {
                public void run() 
                {
                    try 
                    {
                        Login window = new Login();
                        window.frame.setVisible(true);
                    } 
                    catch (Exception e) 
                    {
                        e.printStackTrace();
                    }
                }
            });
        }

        DBConnection myConn = new DBConnection();

        public Login() 
        {
            initialize();
            DBConnection.dbConnection();
        }

        private void initialize() 
        {
            frame = new JFrame();
            frame.setBounds(100, 100, 450, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }

    }

无论我尝试什么,我都找不到问题。它不会连接到我的本地mysql数据库。

[异常是:java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:是)

java mysql database database-connection
3个回答
0
投票

如果您在本地主机上运行服务器,建议您首先尝试使用mysqlworkbench连接数据库。如果您无法通过这种方法进行连接,则会遇到其他问题。


0
投票

尝试检查您的MySQL凭据,检查用户名和密码

Access denied for user 'root'@'localhost' (using password: YES)

,您可以使用带有用户名和密码的终端进行检查

$ mysql -u root -p

如果忘记了密码,请查看如何重设密码


0
投票

我在打印错误后才知道。这是两个问题,第一个是登录密码。搞定了。但是我遇到了TimeZone错误。

第二个错误:java.sql.SQLException:服务器时区值'MDT'无法识别或代表多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过“ serverTimezone”配置属性)以使用更特定的时区值。

通过将timeZone与URL传递给客户端来解决此问题。

“ jdbc:mysql:// localhost:3306 / login?useUnicode = true&characterEncoding = utf8&useSSL = false&useLegacyDatetimeCode = false&serverTimezone = UTC”;

此问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.