• No results found

6. Installation av databasserver

6.1. Installera MySQL

: MySQL har officiella installationsanvisningar här http://dev.mysql.com/doc/refman/5.6/en/installing.html

För utökad support och funktionalitet såsom online-backup finns samma version i Enterprise Edition-utförande som dock inte är kostnadsfri. Mer information om detta finns här: http://www.mysql.com/products/enterprise. Rekommenderbart är att nyttja en High Availability lösning.

Mer information om detta finns här: https://dev.mysql.com/doc/refman/5.6/en/ha-overview.html

Den MySQL-användare som används vid installationen kräver behörighet att ändra, uppdatera och lägga till nya tabeller i de scheman som skapas för systemet.

6.1.1. Specifika MySQL-inställningar

6.1.1.1. Teckenuppsättning

Default-installation av MySQL använder teckenuppsättningen latin1. Detta måste ändras till UTF-8för att svenska tecken ska användas korrekt. I katalogen <Lokal_sakerhetstjanst>\db\example\ finns ett exempel på en MySQL-konfigurationsfil (anpassad för Linux) där teckenuppsättningen är ändrad till UTF-8, och även lite generella inställningar man kan använda för att få upp prestandan på MySQL. Dessa generella Inställningar kan man även lägga in i konfigurationsfilen för Windows (observera att det inte finns någon exempel-fil för Windows). Nedan visas dessa inställningar som behöver ändras i filen m

i Linux-installationen och i filen i Windows.

y.cnf my.ini

# Set default character sets to use UTF-8

init_connect='SET collation_connection = utf8_general_ci; SET NAMES utf8;' character-set-server=utf8

character-set-client=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake

6.1.1.2. Minnestilldelning "innodb_buffer_pool_size"

För att minska diskaccess bör denna sättas upp till 4-8 GB RAM-tillgång. Upp till 80% av maskinens minnesstorlek på en dedikerad databasmaskin säger MySQL-dokumentationen.

Sätts i konfigurationsfilen (my.cnf på Linux och my.ini på Windows)

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes...

innodb_buffer_pool_size = 6G

6.1.1.3. Binary logging "binlog_format"

Sätts till ROW för Säkerhetstjänster.

Sätts i konfigurationsfilen (my.cnf på Linux och my.ini på Windows)

# binary logging format binlog_format=ROW

6.1.1.4. InnoDB Tablespace "innodb_file_per_table"

Default för senare versioner av MySQL (från 5.6.x) är att tabeller och index skrivs till en fil per schema istället för en enda stor fil.

För detta i tidigare versioner av MySQL, lägg till följande bland övriga innodb-parametrar i konfigurationsfilen (my.cnf på Linux och my.ini på Windows) OBS: Som tidigare nämnts så rekommenderas det att installera den senaste versionen av 5.6-serien (5.6.37).

Vi hänvisar till konfigurationsfilen för MySQL i exemplen nedan, för både Linux och Windows, då både Windows och Linux anvisningarna delar på denna information.

Exempel Linux: /etc/my.cnf

Exempel Windows: C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

Observera: Att man måste aktivera valet "Show hidden files, folders, and drives" under Folder options för att kunna se katalogen C:\ProgramData

1.

2.

3.

4.

# Use one file per table innodb_file_per_table

OBS! Har man ett befintligt system utan denna parameter kan man inte bara ändra utan att först dumpa ut all data och sedan läsa in den igen efter att detta ändrats (beskrivs inte i detta dokument). Denna inställning är dock inte tvingande så man kan i detta läge fortsätta utan denna inställning.

6.1.2. Skapa användare som applikationsservern ska använda

Skapa en användare i MySQL som har behörighet att ändra, uppdatera och lägga till nya tabeller i de scheman som skapas för systemet.

Det behövs två användare:

# sak@localhost : användaren sak kan enbart ansluta från ”localhost”.

# sak@% : användaren sak kan ansluta från ”any hosts”

Användarna behöver inte ha behörighet för att kunna skapa nya scheman.

Starta ett terminal-fönster mot databasservern och skriv följande kommando:

mysql -u root -p

Ange det lösenord som angavs vid installationen.

Skapa ny användare (i detta exempel är användarnamnet sak vilket rekommenderas, samt ett lösenord) genom att skriva följande tre kommandon:

CREATE USER 'sak'@'localhost' IDENTIFIED BY 'password';

GRANT CREATE, DROP, EVENT, DELETE, INDEX, INSERT, SELECT, UPDATE, CREATE TEMPORARY TABLES, LOCK TABLES, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE ON *.* TO 'sak'@'localhost';

FLUSH PRIVILEGES;

Skapa ny användare (i detta exempel är användarnamnet sak vilket rekommenderas, samt ett lösenord) genom att skriva följande tre kommandon:

CREATE USER 'sak'@'%' IDENTIFIED BY 'password';

GRANT CREATE, DROP, EVENT, DELETE, INDEX, INSERT, SELECT, UPDATE, CREATE TEMPORARY TABLES, LOCK TABLES, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE ON *.* TO 'sak'@'%';

FLUSH PRIVILEGES;

Avsluta MySQL prompten med kommando:

quit

6.1.3. Skapa upp databasscheman

När databasanvändare har skapats, ska databasscheman som lokala Säkerhetstjänster använder skapas upp. I installationspaketet (under strukturen <Lok ) ligger samtliga databasscheman som behöver sättas upp.

al_sakerhetstjanst>\db\mysql\

Tabellen nedan visar vilka skript som tillhör de databasscheman som kommer sättas upp i nästkommande steg.

Schema Skript

accesscontrol accesscontrol.sql accesscontrol_data.sql

OBS! Att tillåta att en användare kan ansluta från "any hosts" bör endast användas i en testmiljö. För en produktionsmiljö bör användningen låsas ytterligare, så att det bara är applikationsserverna som kan ansluta till databasservern.

OBS! För att skapa scheman krävs en användare som har root-rättigheter, vilket skapades upp under installationen av MySQL.

1.

För över samtliga komponenter som finns i katalogen <Lokal_sakerhetstjanst>\db\mysql\ till en tmp katalog på er MySQL-server.

Öppna ett kommandofönster (cmd.exe - Command prompt).

Gå till katalogen dit filerna kopierats.

Exempel:

cd c:\tmp\mysql

Lista innehållet i katalogen. Utöver de sql-skript som listas i tabellen, finns skript-filen create_databases_windows.bat. Editera create_databases_windows.bat scriptet och ändra sökväg om ni installerat mysql i en annan katalog.

Exempel:

set mysql="C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe"

Skript-filen create_databases_windows.bat ska köras med följande parametrar:

Målmiljö - Den databasserver som skall användas.

Användarnamn – det användarnamn som används till databasmiljön med root-rättigheter.

Prefix – ej obligatoriskt. Ett prefix till tabellnamnet, kan anges om så önskas. I exempelbilden nedan har vi angivit ”exemple_” som prefix.

Om prefix anges kommer namnet på databaserna att få följande utseende som exempel:

example_accesskontrol example_audit osv...

Exempel:

create_databases_windows.bat localhost root example_

När skriptet körs kommer en fråga om ni vill fortsätta att skapa upp databaserna. Ange ”y” för att fortsätta med exekveringen.

Alla databaser kommer att tas bort och skapas igen så all befintlig data kommer att raderas.

OBS!

Exempel:

6.

Create MySQL databases for Lokala Sakerhetstjansten.

*NOTE* that by running this script all tables will be recreated and all existing data will be lost!!!

DO YOU WANT TO CONTINUE?(y/n)y Enter password: ******

Do you really want to recreate these databases:

Creating schema "example_accesscontrol"...

...drop and recreate schema example_accesscontrol successful ...reading accesscontrol.sql successful

...database "example_accesscontrol" created Creating schema "example_audit"...

...drop and recreate schema example_audit successful ...reading audit.sql successful

...drop and recreate schema example_sp successful ...reading sp.sql successful

...reading sp_data.sql successful ...database "example_sp" created

DONE

C:\temp\mysql>

Om inget fel uppstod kommer meddelandet DONE att skrivas ut. Verifiera att databaserna har skapats genom att logga in i mysql-prompten och exekvera följande:

Exempel:

c:\tmp\mysql>"c:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe" -uroot -p mysql> show databases;

För att kontrollera om det finns tabeller i ett schema (t.ex. accesscontrol ) ange kommandot:;

Exempel:

mysql> use accesscontrol;

mysql> show tables;

+---+

| Tables_in_accesscontrol | +---+

1.

Här följer ett exempelpå installation av databasen MongoDB för Säkerhetstjänster. MongoDB kan laddas ner som ett MSI-paket. MongoDB har officiella installationsanvisningar här: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/

6.2.1. Installera MongoDB på en eller tre noder

Nedan följer installationsexempel för MongoDB med replikering samt singelnod. I det första fallet innebär det att installationen kommer att använda tre noder kallade Primary, Secondary och Arbiter. Att installera MongoDB på tre noder har två syften:

Prestanda Tillgänglighet

I konfigurationen som följer efter installationen utser man vilka noder som ska ingå i uppsättningen. Vilka noder som ska vara datanoder och vilken av dessa som data ska läsas ifrån. Noden som har rollen Primary är den nod som data skrivs till. Arbitern bedömer vilken av noderna som ska fungera som Pr

och vilken/vilka som ska fungera som .

imary Secondary

kan med fördel installeras på applikationsservern. Säkerhetstjänster kommer att begära att få läsa ifrån en -nod. Detta ökar prestandan

Arbitern Secondary

avsevärt under hanteringen av verksamhetsloggar, då en nod hanterar alla inkommande loggar och läsning kan ske från en annan nod. Med rollen som ” domare” kan Arbitern sedan bestämma om noderna Primary och Secondary ska byta roller vid detekterade problem.

Det går även att sätta upp installationen på en nod, en så kallad singlenodinstallation, men av prestanda- och redundansskäl rekommenderar vi att ovan beskriven trenodsinstallation används.

MongoDB 3.4 kan laddas ner från https://www.mongodb.com/download-center#community

För en installation med replikering ska installationen uföras på samtliga datanoder och Arbiter-noden. Singelnodinstallationen installeras på samma sätt men konfigurationen skiljer sig något mellan nodtyperna.

6.2.1.1. Installation

Hämta MongoDB för Windows.

Kopiera msi-paketet till valfri katalog på alla datanoder samt arbiternoden.

Skapa en datakatalog för MongoDB (alla noder), exempelvis: C:\mongodb\data Skapa en katalog för MongoDBs loggfil (alla noder), exempelvis: C:\mongodb\log

Skapa en nyckelfils katalog för autentisering (gäller enbart i ett replicaset och görs på alla noder), exempelvis: C:\mongodb\keys Skapa en konfigurationsfil genom att först skapa ett temporärt text-dokument med namnet mongod_.cfg C:\mongodb\ i Skapa en cfg-fil. Öppna txt-filen mongod_.cfg och välj därefter att spara ned den tom i mappen C:\mongodb\

Välj "save as" i menyn file. Välj sedan "save as type" och "all" med filnamnet mongod.cfg

(högerklicka sedan på filen och verifiera i properties att filen nu är en cfg-fil. Den temporära txtfilen mongod_.cfg kan tas bort) Editera sedan filen och lägg till dom värden som visas nedan och spara följande information i C:\mongodb\mongod.cfg Kopiera mongod.cfg filen till övriga noder.

I en singelnodinstallation utelämnar man parametrarna och samt och Exemplet nedan gäller för ett

Obs! security keyFile replication replSetName.

replikaset i ett flernodssystem.

Related documents