Installation og opsætning af MySQL i Windows 2000/XP

Tags:    databaser mysql
Skrevet af Bruger #1743 @ 07.12.2004

Installation af MySQL


Denne artikel vil ganske enkelt være det den er; en simpel, lige-til vejledning.
For at komme igang med morskaben, skal man først downloade MySQL:
http://dev.mysql.com/downloads
For at opnå bedste resultat, i sammenspil med denne vejledning, bør du hente version 4.0, med installer.

Der er ingen kryptiske valg overhovedet, så installationen handler mest om at klikke Next og vælge Typical som installationsmetode.
Af samme grund vil jeg ikke spilde din tid på en masse screenshots af disse knapper.
For denne vejlednings vedkommende, er installationsmappen sat til C:\\mysql.

Start MySQL op


Når MySQL først er installeret, skal det startes op manuelt.
Dette gøres ved at eksekvere følgende (fra en kommandoprompt):

C:\\mysql\\bin\\mysqld –-console

Nu skulle der så gerne komme lidt output i kommandoprompten.
For en server med InnoDB understøttelse, bør følgende fremkomme på skærmen (første gang):

InnoDB: The first specified datafile c:\\ibdata\\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\\ibdata\\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\\iblogs\\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\\iblogs\\ib_logfile0 size to 31457280
InnoDB: Log file c:\\iblogs\\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\\iblogs\\ib_logfile1 size to 31457280
InnoDB: Log file c:\\iblogs\\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\\iblogs\\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created


Derefter, samt ved alle efterfølgende opstart af mysql-serveren, bør følgende output desuden komme til syne:

InnoDB: Started
c:\\mysql\\bin\\mysqld.exe: ready for connections.
Version: '4.0.20a-debug’ socket: '' port: 3306


Fordelen ved at bruge --console switch, er naturligvis at man på denne måde har mulighed for at læse evt. diagnostiske meddelelser uden at skulle have fat i logfilen.
For at åbne klientforbindelser til serveren, som nu kører, skal man derfor have fat i en ny kommandoprompt.

Test server-klient forbindelsen


For at teste server-klient forbindelsen, kan man egentlig sende hvilken som helst kommando.
Der er dog heldigvis udviklet et lille, smart program, som kan vise alle databaser, hvilket er ideelt til at teste forbindelsen. Kør følgende fra en anden kommandoprompt:

C:\\mysql\\bin\\mysqlshow.exe

Outputtet, genereret af denne kommando, skulle meget gerne være en oversigt over databaser, hvor kun én (”test”) ses.

Start MySQL som en service


Hvorfor køre et program, hver gang man starter maskinen, hvis Windows kan finde ud af at køre det som en service? Nej, det er der nemlig ikke ingen grund til, derfor er det meget godt at få det sat op som en service, også fordi at det så starter op sammen med andre services (som Apache, PHP, mv.) ved Windows opstart og lukker ned sammen med det også.

Først skal serveren lukkes ned, inden disse ændringer foretages (frem med kommandoprompten):

C:\\mysql\\bin\\mysqladmin -u root shutdown

Det, som kommandoen gør, er at den bruger programmet “mysqladmin” til at forbinde til serveren som “root” og bede serveren om at lukke ned.
Her skal det så lige nævnes, at MySQL har sin egen brugerdatabase, helt uafhængig af Windows’.

Dernæst skal serveren sættes op som en service:

C:\\mysql\\bin\\mysqld –install

Herefter er det en registreret service, hvilket bevirker at alle fordele nu er tilgængelige, som f.eks. at kunne styre servicen fra Start -> Programmer -> Administration -> Tjenester, samt brugen af NET kommandoen (net start mysql, net stop mysql, osv.).
Med andre ord, så kan du styre din MySQL-server fra "Kør"-dialogen, uden at udføre de helt store trylletricks.

For at være 100 % sikker, kan man genstarte maskinen og derefter – uden at forsøge at starte noget som helst – gentage afsnittet ”Test server-klient forbindelsen”.

Fejl som service


Når MySQL kører som service, siger det sig selv, at der ingen konsol er at kigge i. Derfor skal man ty til logfilerne, hvis noget går galt – disse er placeret i C:\\mysql\\data i formen computernavn.err.


Sikring af konti


Når MySQL serveren sættes op, bliver der automatisk oprettet i alt 4 konti i databasen.
2 root-konti med fuld adgang, samt 2 anonyme brugere med fuld adgang.
Det anbefales at slette de anonyme og sætte et password for root.

Først slettes de anonyme:
Åbn MySQL Command Line Interface (CLI), eller MySQL monitor, med kommandoen mysql –u root.
Derefter skrives:
DELETE FROM mysql.user WHERE User = ’’;
..for at slette de anonyme konti.
Der afsluttes med:
FLUSH PRIVILEGES;
..for at opdatere "grant" tabellen uden at skulle genstarte serveren.
Bemærk at når den skriver Query OK, 0 rows affected (x.xx sec) er det ikke en fejl; ingen rækker, skal berøres!).

For at ændre password for root, skrives der fra MySQL CLI:
SET PASSWORD FOR ’root’@’%’ = PASSWORD(’nytpassword’);
Bemærk at "%" fungerer som wildcard, i stil med "*" i andre tilfælde.

En anden metode til at ændre password for root er flg.:
UPDATE mysql.user SET Password = PASSWORD(’nytpassword’) WHERE User = ‘root’;

Sidstnævnte ændrer på ALLE, hvis brugernavn er root, hvilket er meget smart, hvis de foregående eksempler ikke virker (hvis serveren f.eks. ikke hedder localhost).
Noget andet smart ved at bruge UPDATE instruktionen er desuden, at den virker på både Windows og Unix platforme, hvilket gør den til en god vane.

Svaret bør være i stil med:
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0


Forbind som root


Nu hvor der er sat et password, bliver kommandoen til at bruge MySQL CLI lidt peppet op.
Før var det mysql –u root
Nu hvor et password er sat, skal der tilføjes et p-flag, for at indikere at der ønskes et password indtastet. Glemmer man p-flaget, får man ikke blot en fejl, men serveren spørger slet ikke om det.
Den nye kommando er således:
mysql –u root –p
..hvor den sidste parameter (-p) gør, at der bliver promptet efter password.

Parameteren –p skal desuden tilføjes ved alle operationer nu, som f.eks. mysqlshow, for at få tildelt de nødvendige rettigheder.

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (15)

User
Bruger #2730 @ 07.12.04 22:44
De samme switches kan jeg se i installationsvejledningen til databasen. Hvorfor skal jeg vide alt det med hvordan jeg opsætter databasen, når jeg bare kan hente en Windows Installer der installerer det hele som en service i eet hug, så jeg ikke skal bekymre mig om at skulle skrive noget i min kommando prompt ?

Tror jeg næste gang vil lave en artikel om hvordan man installerer officepakken på den mest vanskelige måde....

En 2'er herfra for en lidt skuffende artikel, der er dog nogle gode ting som eksempelvis brugeradministration, hvor jeg lærte lidt nyt...
User
Bruger #1743 @ 08.12.04 07:56
Man kan også vælge at lave sin hjemmeside i Frontpage, for at undgå alt det pjat med at skrive HTML-kode ind, men vi er nogle der er dumme nok til at lade være.

Artiklen omhandler installation og opsætning.

Den automatiske installer der er tilgængelig er muligvis "ok", men den skaber nye/andre problemer, samt er én måde at gøre det på.

Jeg valgte engang at bruge denne metode til installation og opsætning, fordi jeg ganske enkelt ikke gad at bruge tid og energi på at forstå, hvad mærkelige fejl og mangler der fulgte med, når jeg brugte det, der skulle kunne gøre det hele i et hug.

Det er fint nok hvis man vil bruge installeren, men da jeg som sagt opgav at finde rundt i alle dens mangler, så droppede jeg det. Derfor er det heller ikke dette, som denne artikel omhandler.
User
Bruger #4404 @ 08.12.04 21:13
Når det er lavet, kan der så ikke også komme en guide til at installere php5 på ens computer :P?
User
Bruger #1743 @ 09.12.04 11:16
Til folk der er nysgerrige mht. at installere PHP5, kan jeg fortælle at det er stort set lige så smertefyldt (lidt mere endda), som version 4.
I betragtning af hvor idiotsikkert PHP er, finder jeg det utroligt at man skal gøre så meget selv, for at installere det, men nok om det.

PHP-holdets egen dokumentation er blevet opdateret mht. installation og konfiguration, informationer der kan findes her:
http://dk2.php.net/install
User
Bruger #955 @ 10.12.04 09:21
Den eneste forskel jeg kan se mellem at bruge installerens config-wizard og din metode, er at man ved installeren ikke bliver promptet om de anonyme konti skal slettes.
Og hvis du alligevel ligger ud med, at man skal hente mySQL ned med installer, så hvorfor ikke benytte sig af installerens funktionalitet? Hvis du mener det giver problemer, vil det være udmærket hvis du beskrev disse problemer, og hvordan din metode forhindrer det.
Jeg synes ikke at der er noget grundlag for en artikel, da installeren har alt den funktionalitet, og opsætningen alligevel er en individuel sag, hvor indstillingerne kan variere alt efter hvilken problemstilling man er oppe imod.
User
Bruger #1743 @ 10.12.04 14:27
Det er egentlig meget simpelt:
1. Denne guide omtaler installation (og intet mere).
2. Denne guide omtaler opsætning vha. kommandoprompten.

Mht. fejl i opsætning vha. installeren, kan nævnes at den nogle gange "glemmer" at prompte for root-password.

Det kan siges ret kort: Installeren er noget værre lort, desværre kan jeg ikke se kildekoden, så jeg kan ikke fortælle hvorfor, eller komme med et bud på hvordan man retter den.

Jeg kan ikke se hvad installeren's fejl har at gøre med artiklen, som omhandler INSTALLATION og OPSÆTNING af MySQL, ikke hvad et program (installeren) kan, ikke kan, eller hvorfor den er dårlig.
User
Bruger #955 @ 10.12.04 20:19
Det jeg mener, er at du laver en artikel ud af næsten ingenting, det kan gøres meget nemmere: Installer mysql 4.1, og åben "mySQL Server Instance configuration". Tryk "next", vælg "standard configuration", sæt hak i "install as windows service" og tryk next. Sæt hak i "modify security settings" og skriv root passwordet, sørg for at der ikke er sat hak i "create an anonymous account".
User
Bruger #5688 @ 15.02.05 14:12
Det er ikke alle der gider, eller har mulighed for, at bruge klodsede grafiske interfaces.
User
Bruger #955 @ 21.02.05 20:49
Hej Troels, det er da ok at opsætte mySQL på den besværlige måde beskrevet i "artiklen" såfremt man ikke har mulighed for at bruge den grafiske brugerflade, men da artiklen henvender sig til Windows brugere, bør man dog forvente at brugeren har mulighed for at bruge "det klodsede grafiske interface". Jeg synes selv at den medfølgende wizard er yderst brugervenligt designet, og ikke lige så klodset som at slå forskellige parametre op i en manual.
User
Bruger #955 @ 21.02.05 20:58
Hele min pointe er at artiklen er uden indhold, jeg brugte ca. 30 sekunder på at gøre det samme opsætningsværktøjet. Jeg savner et par argumenter hvorfor man ikke skulle gide det, i forhold til at rode med kommandoprompten.

Der er ingen grund til at gøre det mere besværligt end nødvendigt.
User
Bruger #7487 @ 07.04.05 15:50
Vil du lave en MySQL database til mig ?
User
Bruger #1743 @ 18.04.05 08:59
Man kan hurtigt vænne sig for godt til de klodsede grænseflader, for derefter at blive totalt kommando-spasser og det er et problem når man så skal gøre noget, som den grafiske grænseflade ikke tillader.

Det er fint nok at bruge det, bestemt, men jeg foretrækker at inspirere kommandobrug, så vænner man sig til det.
User
Bruger #8985 @ 11.02.06 17:14
Jeg synes nu, du skulle have gjort lidt ud af nogle screenshots. Måske ikke af knapper, men i hvor henne og hvilken version, man skulle vælge. Der er tusinde forskellige, og jeg har ingen idé om hvilken. Det er ikke nok at sige 4.0, menes der 4.0.0, 4.0.1, 4.1.2 osv? Prøvede 4.0.0, den kunne jeg ikke bruge...
User
Bruger #10895 @ 06.09.07 21:41
god artikel :D
User
Bruger #4487 @ 11.02.11 10:12
Er der ikke nogle som kan lave en guide til installation og opsætnng af en MySQL database i MAC OS X, da jeg har fundet dette lidt mere besværligt end som så...
Du skal være logget ind for at skrive en kommentar.
t