Попытка получить программу java для подключения к локальной базе данных Mysql на Mac - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать приложение Jframe, которое получает информацию из локальной базы данных mysql и заполняет представление списка в GUI. Я не могу заставить программу подключиться к базе данных. Я нахожусь на Ма c, и мне было интересно, если это что-то с разрешениями в ОС или я просто что-то упустил в коде.

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' (с использованием пароля: ДА)

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Я понял это после того, как напечатал ошибку. Это были две проблемы, во-первых, пароль для входа. Получил это исправлено. Но я получил ошибку TimeZone.

Вторая ошибка: java. sql .SQLException: значение часового пояса сервера 'MDT' не распознано или представляет несколько часовых поясов. Вы должны сконфигурировать либо сервер, либо драйвер JDB C (через свойство конфигурации 'serverTimezone'), чтобы использовать более конкретное значение c часового пояса, если вы хотите использовать поддержку часового пояса.

Получено, что исправлено путем передачи timeZone через клиент с URL-адресом.

"jdb c: mysql: // localhost: 3306 / login? useUnicode = true & characterEncoding = utf8 & useSSL = false & useLegacyDatetimeCode = false & serverTimezone = UT C" ;

Это исправлено.

0 голосов
/ 28 апреля 2020

Попробуйте проверить свои учетные данные на MySQL, проверьте имя пользователя и пароль

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

, вы можете проверить, используя терминал с именем пользователя и паролем

$ mysql -u root -p

Если вы забыли пароль, ознакомьтесь с тем, как его сбросить

...