Informasjon om IDIs MySQL-server med enkle javaeksempler.

Hensikt

Denne artikkelen vil beskrive hvordan en kan bruke IDIs MySQLserver mysql.idi.ntnu.no og hva den kan brukes til.

MySQL på IDI

IDI har en MySQL-server på mysql.idi.ntnu.no. Denne er ikke åpen for å sette opp villkårlige databaser på impuls, og er ment for fag og prosjekter som kjøres på instituttet.

For skoleprosjekter, f.eks i TDT4145, finnes det egnet servere til dette som du finner guide på her. Den bruker login.stud.ntnu.no.

Hvordan få tilgang til serveren

Bruk SSH til å logge på slik: brukernavn@login.stud.ntnu.no

Hvordan koble til med kommandlinjeverktøy

SSH til login.idi.ntnu.no og kjør programmet mysql. Eksempel:

furu$ mysql -h mysql.idi.ntnu.no -u brukernavn -p[pw]

Hvordan koble til webgrensesnitt

På http://phpmyadmin.idi.ntnu.no/ finnes det et grensesnitt for manipulering av databaser.

Programmeringstilgang

For å kunne koble til MySQL-databaser trengs et driverbiliotek. På http://dev.mysql.com/downloads/ kan du finne dette for bl.a. Java og .NET ved å bla nedover til 
"Drivers and Connectors".

Tilkoblingsurlen til MySQL ser slik ut: "jdbc:mysql://vert:port/databasenavn".

Enkelt Javaeksempel (utelater Exceptions og kodekonvensjoner):

Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://mysql.idi.ntnu.no/mindatabase";
String user = "brukernavn";
String pw = "passord";
Connection con = DriverManager.getConnection(url,user,pw);

 

Mer omstendelig Javaeksempel (tar med Exception-håndtering og debugmeldinger):

Connection con  =  null;
try {
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  String url = "jdbc:mysql://mysql.idi.ntnu.no/mindatabase";
  String user = "brukernavn";
  String pw = "passord";
  Connection con = DriverManager.getConnection(url,user,pw);
  System.out.println("Tilkoblingen fungerte.");
  } catch (SQLException ex) {
    System.out.println("Tilkobling feilet: "+ex.getMessage());
  ) catch (ClassNotFoundException ex) {
    System.out.println("Feilet under driverlasting: "+ex.getMessage());
  } finally {
    try {
      if (con !=  null) con.close();
    } catch (SQLException ex) {
      System.out.println("Epic fail: "+ex.getMessage());
    }
  }
  • No labels