Nilotpal
Nilotpal

Reputation: 3588

Unable to connect to mysql from java. mysql in another system

i wanted to connect to mysql from java code where mysql is in another system. i have created a user in another machine "nilotpal". Other machine address is 192.168.92.93. I am able to ping to this machine. where am i missing?? can someone help?!!

The program i am using is:

    import java.sql.*;

    public class FirstExample {

        static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        static final String DB_URL = "jdbc:mysql://192.168.92.93:3306/tution";

        //  Database credentials
        static final String USER = "nilotpal";
        static final String PASS = "nilotpal";

        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            try{
                //STEP 2: Register JDBC driver
                Class.forName("com.mysql.jdbc.Driver");

                //STEP 3: Open a connection
                System.out.println("Connecting to database...");
                conn = DriverManager.getConnection(DB_URL,USER,PASS);

                //STEP 4: Execute a query
                System.out.println("Creating statement...");
                stmt = conn.createStatement();
                String sql;
                sql = "SELECT id, first, last, age FROM Employees";
                ResultSet rs = stmt.executeQuery(sql);

                //STEP 5: Extract data from result set
                while(rs.next()){
                    //Retrieve by column name
                    int id  = rs.getInt("id");
                    int age = rs.getInt("age");
                    String first = rs.getString("first");
                    String last = rs.getString("last");

                    //Display values
                    System.out.print("ID: " + id);
                    System.out.print(", Age: " + age);
                    System.out.print(", First: " + first);
                    System.out.println(", Last: " + last);
                }
                //STEP 6: Clean-up environment
                rs.close();
                stmt.close();
            conn.close();
        }catch(SQLException se){
            //Handle errors for JDBC
            se.printStackTrace();
        }catch(Exception e){
            //Handle errors for Class.forName
            e.printStackTrace();
        }finally{
            //finally block used to close resources
            try{
                if(stmt!=null)
                    stmt.close();
            }catch(SQLException se2){
            }// nothing we can do
            try{
                if(conn!=null)
                    conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }//end finally try
        }//end try

        System.out.println("Goodbye!");

        }//end main
    }//end FirstExample

Upvotes: 2

Views: 431

Answers (2)

Valarpirai
Valarpirai

Reputation: 465

Reference from Connect to mysql on a different server

Also make sure that mysql user nilotpal have remote connection permission. Other wise mysql-server will not allow your nilotpal user to login remotely. i.e. from your server (from program).

You can make sure that from mysql.user table.

mysql> select Host,User from user where User = "root";
+------------+------+
| Host       | User |
+------------+------+
| 127.0.0.1  | root |
| ::1        | root |
| localhost  | root |
| sgeorge-mn | root |
| %          | root |
+------------+------+
4 rows in set (0.01 sec)

% means any host.

To create a user with remote connection permission, use following mysql query:

mysql> CREATE USER 'nilotpal'@'%' IDENTIFIED BY 'nilotpal';

Upvotes: 1

vicky
vicky

Reputation: 109

First ping the machine using ping command, If it is pinging than check for the mysql user permission.

Granting Permission to user:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Upvotes: 1

Related Questions