Tilbake

Bruke MySQL ved NTNU

En introduksjon i oppretting og bruk av MySQL-databaser for studenter og ansatte.

English version: Using MySQL at NTNU

Ser du etter noe annet? Temaside om IT-hjelp | Sider merket database

På tjenerne til NTNU kjøres det en MySQL-database hver for studenter og ansatte. MySQL er en av de mest brukte og populære databasetjenerne, spesielt i web-sammenheng. På NTNU kan du nå MySQL på mysql.stud.ntnu.no for studenter og mysql.ansatt.ntnu.no for ansatte. Nybegynnere vil ha nytte av å sette seg inn i konseptene før man begynner å bruke databasetjeneren.

Konsepter #

Bruker: For å få tilgang til en database må man ha en bruker. Man kan lage flere brukere, og samme bruker kan ha rettigheter i flere databaser. Brukere må ha samme brukernavn som en selv, eller være på formen brukernavn_noe. (F.eks. johndoe, johndoe_web, johndoe_timeplan osv.) Vær oppmerksom på at et MySQL-brukernavn maksimalt kan være på 16 tegn, dvs. at dersom ditt brukernavn er johndoe (7 tegn), har du kun 8 tegn tilgjengelig til den delen av navnet som du velger selv.

Database: Du kan ha flere databaser. Man kan lage databaser med samme navn som brukernavnet,og/eller som begynner med brukernavn og en understrek. (F.eks. johndoe, johndoe_oppskrifter, johndoe_venner, osv.) Også her gjelder regelen om maksimalt 16 tegn i navnet.

Tabell: Hver database kan ha flere tabeller. Tabellene kan hete hva som helst, så lenge ikke to tabeller i samme database har samme navn. Tabellene huser de faktiske dataene i databasen.

Rettigheter: Brukere har rettigheter til å utføre forskjellige handlinger i en database. Etter at en bruker er lagt til i en database, gir man dem rettigheter slik at de kan utføre handlingene vi ønsker.

Fremgangsmåte #

I utgangspunktet må en ha spesielle rettigheter for å opprette bruker og database. Derfor er det på tjenerne to små programmer som brukes for å lage bruker, sette passord og rettigheter, samt for å opprette selve databasen. Dette er Unix-programvare som du når ved å gå til login.stud.ntnu.no og login.ansatt.ntnu.no med SSH. Du logger inn med din NTNU-bruker.

Opprette bruker #

La oss si at vi skal lage en database over vennene våre og deres telefonnummer. Det første vi må gjøre er å lage en databasebruker. Vi kaller denne 'johndoe_demo'. Pass på at du bruker navnereglene som er beskrevet under "brukere" i det forrige avsnittet (Bytt ut 'johndoe' med ditt brukernavn).

[johndoe@lynx (13) ~ ]$ mysql-useradm create johndoe_demo
[johndoe@lynx (14) ~ ]$ mysql-useradm show
User 'johndoe_demo': no password set.

Så må vi huske å sette passord på brukeren. Merk at passord ikke kan være lengre enn 8 tegn. Passordet bør kun gjelde for MySQL, spesielt dersom du ønsker å bruke den relaterte brukeren i web-sammenheng på NTNU. Filer som lagres i din public_html-mappe vil være lesbare for alle brukere ved NTNU.

[johndoe@lynx (16) ~ ]$ mysql-useradm passwd johndoe_demo
New MySQL password for user 'johndoe_demo': *****
Retype new MySQL password for user 'johndoe_demo': *****
Password updated for user 'johndoe_demo'.

Lage database #

Nå kan vi lage selve databasen:

[johndoe@lynx (22) ~ ]$ mysql-dbadm create johndoe_venner
Database 'johndoe_venner' created.

Sette rettigheter #

Før vi kan begynne å bruke databasen, må vi huske å tildele den en bruker og sette rettigheter. Sjekk rettighetene til databasen med kommandoen:

[johndoe@lynx (25) ~ ]$ mysql-dbadm show johndoe_venner

Da skal det se omtrent slik ut:

Database 'johndoe_venner':
# User                Select  Insert  Update  Delete  Create   Drop   Alter  Index  Temp  Lock  References
# ----------------    ------  ------  ------  ------  ------  ------  -----  -----  ----  ----  ----------
# (no permissions currently granted to any users)

Her ser vi at vi ikke har satt noen rettigheter enda. Det gjøres med kommandoen:

[johndoe@lynx (30) ~ ]$ mysql-dbadm editperm johndoe_venner

Så startes yndlingseditoren opp ($EDITOR) og man fyller inn ønsket bruker med rettigheter. Fyll inn brukeren som skal ha rettigheter, og bruk Tab-tasten til å navigere gjennom rettighetene. Etter å ha lagt det inn, velg exit og lagre (ctrl og X for å gå ut, deretter Y for Yes). Sjekk at endringene gikk gjennom ved å vise databasen igjen ved kommandoen:

[johndoe@lynx (25) ~ ]$ mysql-dbadm show johndoe_venner

Et riktig resultat kan se slik ut:

Database 'johndoe_venner':
# User                Select  Insert  Update  Delete  Create   Drop   Alter  Index  Temp  Lock  References
# ----------------    ------  ------  ------  ------  ------  ------  -----  -----  ----  ----  ----------
johndoe_demo            Y       Y       Y       Y       Y       Y       Y      Y      Y     Y       Y

Legge til data #

Nå er vi klar til å bygge innholdet i databasen:

[johndoe@lynx (33) ~ ]$ mysql -A -h mysql.stud.ntnu.no -u johndoe_demo -p johndoe_venner
Enter password: ********

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 217293 to server version: 3.22.22 Type 'help' for help. 
mysql> CREATE TABLE venner (
-> id int unsigned AUTO_INCREMENT NOT NULL,
-> fornavn varchar(255),
-> etternavn varchar(255),
-> tlf int(20),
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (1.27 sec) 
mysql> insert into venner (fornavn,etternavn,tlf) values ('John','Doe', 73591500);
Query OK, 1 row affected (1.72 sec) 
mysql> select * from venner;
+----+---------+-----------+----------+
| id | fornavn | etternavn | tlf      |
+----+---------+-----------+----------+
|  1 | John    | Doe       | 73591500 |
+----+---------+-----------+----------+
1 row in set (0.06 sec)

Databaser til Studorg-grupper #

Når det kommer til Studorg-grupper kan det kun lages databaser og brukere for vanlige brukere, samt databaser som starter med navnet på Studorg-gruppen. Hvis man ønsker å bruke MySQL i Studorg-sammenheng kan man altså lage en database som heter for eksempel dans_test hvis man er medlem av denne gruppen. Deretter gir man en eksisterende (personlig) databasebruker tilgang ved hjelp av mysql-dbadm editperm dans_test. Alle medlemmene av en Studorg kan gi seg selv tilgang til en database knyttet til Studorg-gruppen på denne måten.

Les mer om studorg-grupper i artikkelen om Enkel samhandling.

Grafisk grensesnitt: phpMyAdmin #

Om du ønsker å bruke et grafisk grensesnitt for å redigere databasen etter den er laget kan du bruke NTNU-IT sin phpMyAdmin. Her logger du inn med brukernavnet og passordet du laget med mysql-useradm, og databasenavnet du laget med mysql-dbadm.

Tips og triks #

Hvordan bruke databasen via PHP #

PHP har egne funksjoner for å aksessere MySQL-databaser. Her er et eksempel:

<?php
  $db = mysqli_connect("mysql.stud.ntnu.no", "johndoe_demo", "troll", "johndoe_venner");
  $result = mysqli_query($db, "SELECT * FROM venner");
  $row = mysqli_fetch_row($result);
  printf("Fornavn: %s<br>\n", $row[0]);
  printf("Etternavn: %s<br>\n", $row[1]);
  printf("Tlf: %s<br>\n", $row[2]);
?>

Hvordan bruke databasen via Perl #

Her er et lite eksempel på hvordan man kan bruke databasen via Perl.

#!/usr/bin/perl
use strict;
use DBI;

my $db='databasenavn';
my $host='mysql.stud.ntnu.no';
my $user='brukernavn';
my $password='passord';

my $dbh = DBI->connect("DBI:mysql:$db:$host","$user", "$password",{PrintError => 0}) || die $DBI::errstr;

$dbh->do("SELECT 1 FROM FOO") or print $DBI::errstr;

To typer passordkryptering #

MySQL har to måter å kryptere passord på. De som ikke har byttet passord til sin databasebruker på veldig lang tid kan ha passordet kryptert på en gammeldags måte. Dette er ikke støttet av nyere klienter som PHP7, som blant annet brukes på folk.ntnu.no og org.ntnu.no. Hvis dette er tilfelle må du sette passord til din databasebruker på nytt. Det nye passordet blir kryptert med den moderne krypteringensmetoden.

Kontakt #

Orakeltjenesten kan hjelpe deg hvis du støter på problemer. Ansatte må kontakte lokal IT-ansvarlig.

0 Vedlegg
10555 Visninger
Gjennomsnitt (8 Stemmer)