MS SQL med QGIS

På Slack framfördes en fråga om Microsoft SQL och QGIS, som fick mig att bli intresserad av just den databasen som lagringsalternativ till QGIS. QGIS är från början byggt för att hantera PostGIS, men programmet har utvecklats enormt och har nu stöd för flera olika typer av databaser, inklusive MS SQL. Tidigare har man varit tvungen att lägga till en ”rumslig” komponent till databasen för att det skall gå att hantera geodata, men nu verkar det finnas två olika datatyper för detta som standard. Hur detta fungerar med QGIS tänkte jag titta på i detta inlägg. Det blev dock inte någon direkt framgång…

När jag började planera för detta så var jag ganska säker på att jag skulle installera MS SQL Express på en virtuell Windowsklient och ta det därifrån, men på Microsofts webbsida hittade jag något som fick mig på bättre tankar.

sql_linux

Jag kan definitivt strunta i Windows, och det verkar som jag kan installera med Docker, vilket gör det väldigt smidigt.

Via adressen https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker ges instruktioner för att ladda hem, starta och sätta upp den första databasen.

sudo docker pull microsoft/mssql-server-linux:2017-latest
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \
   -p 1401:1433 --name sql1 \
   -d microsoft/mssql-server-linux:2017-latest

Lösenordet skall uppfylla vissa kriterier och exempelvis ställer kommandot in servern att lyssna på port 1433, men mer om detaljerna i kommandot går att läsa på sidan om man följer länken tidigare.

sudo docker ps -a

Testar de installerade containrarna och bör ge indikation om att SQL är igång.

För att ”hoppa in” i servern så skriver man in följande kommando:

sudo docker exec -it sql1 "bash"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourNewStrong!Passw0rd>'

När man väl är inne i servern så kan man skapa en ny databas, och även lista befintliga som kontroll.

Skärmbild_2018-02-10_09-01-34.png

Notera att man måste ge kommandot ”GO” innan man ser något i terminalen. För vissa typer av databaser kan man skapa dessa inifrån QGIS, men drivrutinen från GDAL stödjer vad jag vet inte detta, så databasen måste skapas som ovan, eller via annat databasverktyg.

Det var här någonstans som timmar av frustration flöt iväg. Jag hittade ett skript för att skapa ”geometry_column” tabell i databasen, och att jag behöver ansluta på port 1401 för att komma in i Docker containern, men sedan tog det stopp.

Skärmbild_2018-02-10_11-37-02.png

Jag har provat väldigt många olika inställningar och alternativ, med och utan geometry_columns ikryssat. Men inget hjälper. Jag börjar misstänka att programmet inte är kompilerat med rätt QODBC drivrutiner, vilket jag inte har en aning om jag kan åtgärda. Jag kan tänka mig mängder av andra problem också, men jag har inte tid att prova mera.

Nu blir det inte mer experiment med Microsoft på Linux för den här gången. Jag behöver absolut inte MSSQL själv, när det finns PostgreSQL och PostGIS!

Hoppas att andra har bättre lycka.

Annonser

Taggar:, ,

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut /  Ändra )

Google+-foto

Du kommenterar med ditt Google+-konto. Logga ut /  Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut /  Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut /  Ändra )

w

Ansluter till %s

%d bloggare gillar detta: