2017-01-07 7 views
0

Ich versuche, Daten von einem Ubuntu-Server 16.04 in eine Azure SQL-Datenbank zu kopieren. Es scheint der beste Weg, dies zu tun ist mit dem bcp Dienstprogramm, aber ich bin offen für alle Optionen.Segmentation Fault mit bcp zum Herstellen einer Verbindung mit Azure SQL-Datenbank unter Ubuntu 16.04

Ich habe die Anweisungen auf dieser Seite für die Installation der bcp-Dienstprogramm auf Ubuntu 16.04 gefolgt und alles schien OK zu gehen. (Beachten Sie, ich habe nicht den gesamten SQL-Server installiert, nur die MSSQL-Tools wie auf dem Link beschrieben nicht sicher, ob das das Problem ist.) https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu

Wenn ich versuche, Daten mit dem folgenden Befehl zu kopieren, ich bekomme Segmentierungsfehler. Tatsächlich bekomme ich das auch, wenn ich versuche, eine Formatdatei zu erzeugen oder wirklich etwas zu tun.

$> bcp bcptest in /home/data/bcptest.dat -d MyDB -U myusername -S myserver.database.windows.net -P mypassword -c 
Segmentation fault (core dumped) 

Ändern/Entfernen der -c Flagge hilft nicht. Ich sollte beachten, dass wenn ich das Passwort falsch setze, es auf Authentifizierung versagt, so weiß ich, dass es mindestens so weit kommt.

Das einzige, was für mich tatsächlich funktioniert, ist die Überprüfung der Version:

$> bcp -v 
BCP - Bulk Copy Program for Microsoft SQL Server. 
Copyright (C) Microsoft Corporation. All Rights Reserved. 
Version: 14.0.0001.246 

Für das, was es wert ist, kann ich die freebcp Dienstprogramm mit derselben Datenbank arbeiten, aber dass ich Fehler wie dies geben beim Kopieren mehr als ein paar Dutzend Reihen. Das ist für einen separaten Post, nehme ich an.

Msg 20004, Level 9 
Read from the server failed 

Antwort

0

ich auch Fehler immer Segmentierung, wenn bcp auf Ubuntu 16.04 mit (und Ubuntu 16.10 und Centos 7, wenn diese Betriebssystem-Versionen als auch Prüfung).

hatte ich installiert auch die MSSQL-Tools für Ubuntu 16.04 nach diesem Link https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu

Eine neue Version von msodbcsql (13.1.3.0-1) für Ubuntu 16.04 wurde veröffentlicht, die diese Segmentierungsfehler Problem für mich behebt .

# To fix the bcp segmentation fault problem on my ubuntu 16.04 server I did this: 

$ sudo apt-get update 
$ apt list --upgradable 
Listing... Done 
... 
msodbcsql/xenial 13.1.3.0-1 amd64 [upgradable from: 13.1.1.0-1] 
... 
$ sudo apt-get install msodbcsql 

Nach dem Update auf msodbcsql (13.1.3.0-1) werden die Segmentierung Fehler

Testing gegangen:

$ bcp mytable out myfile.csv -c -t ';' -U myuser -P mypass -S myserver.database.secure.windows.net -d mydatabase 

# OK - no segmentation fault - data is bulk copied to outfile