Potrzebuję łatwego i kompletnego samouczka do tworzenia połączenia MSSQL z Ubuntu.
Myślę, że zainstalowałem FreeTDS i UnixODBC, ale konfiguracje są bardzo skomplikowane, nie zrozumiałem problemu.
Wykonałem ten samouczek: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu
Ale zawiodłem.
root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~#
Edytować:
Przed tą edycją „/etc/odbcinst.ini” i „/etc/odbc.ini” było puste.
Dodałem te linie do /etc/odbcinst.ini:
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
Dodałem te linie do /etc/odbc.ini:
[project_development]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = project_development
[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test
[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production
Od samego początku nie wprowadzałem żadnych zmian na „/etc/freetds/freetds.conf”.
Jednak nic się nie zmieniło.
connection
mertyildiran
źródło
źródło
Odpowiedzi:
Oto instrukcje krok po kroku (tutaj) :
Najpierw zainstaluj unixODBC:
Zainstalowałem również następujące (być może konieczne) pakiety:
Następnie pobierz, rozpakuj, skompiluj i zainstaluj FreeTDS (ostrzeżenie, adres URL może ulec zmianie):
Próba połączenia przez Telnet z instancją SQL Server:
Użyj narzędzia tsql, aby przetestować połączenie:
Powinno to poprosić Cię o hasło, po którym możesz mieć nadzieję, że nie zobaczysz tego pięknego znaku:
Jeśli to zadziałało, polecam zorganizowanie imprezy (kodowania). Następnym krokiem jest konfiguracja. Otwórz plik konfiguracyjny FreeTDS. /usr/local/etc/freetds.conf
Dodaj następujący wpis na dole pliku. Tworzymy nazwę źródła danych (DSN) o nazwie „MSSQL”.
Teraz otwórz plik konfiguracyjny ODBC: /usr/local/etc/odbcinst.ini
I na końcu dodaj następujący wpis sterownika MSSQL (FreeTDS):
Następnie ustaw DSN w ODBC w pliku odbc.ini tutaj /usr/local/etc/odbc.ini Dodając ten bit do pliku:
Przetestuj połączenie za pomocą narzędzia isql:
Jeśli zobaczysz komunikat „Połączony!” jesteś złoty, gratulacje! Jeśli nie, naprawdę mi przykro; patrz poniżej, gdzie są zasoby, które mogą pomóc.
Teraz zrestartuj Apache i przetestuj go z PHP używając „MSSQL” jako DSN. Jeśli coś nie działa, możesz spróbować zainstalować jeden lub wszystkie z tych pakietów: mdbtools libmdbodbc libmdbtools mdbtools-gmdb
źródło
W systemie Trusty 14.04 miałem problemy z tworzeniem http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
Kiedy próbowałem uruchomić
tsql
polecenie, okazało się, żetsql
można je zainstalować za pomocą apt:źródło
Mam nadzieję, że skopiowałeś zawartość linku do pliku. Musisz zaktualizować dane swojego serwera SQL w pliku „/etc/odbc.ini”. Możesz polecić link http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/
źródło
Musiałem to zrobić dla Ubuntu 14.04 i 17.04, zarówno LTS 64-bit. Prawdopodobnie działa w późniejszych wersjach.
Zainstaluj unixodbc (połączenia ODBC), freetds (połączenia z SQL Server) i tdsodbc (most między dwoma poprzednimi)
Dodaj sterowniki ODBC do /etc/odbcinst.ini (powinno być puste)
Dodaj swoje DSN do /etc/odbc.ini (powinno być również puste)
I to wszystko.
źródło
Aby odpowiedzieć na pytanie implikowane przez:
... i ignorując wszystkie rzeczy związane z konfiguracją FreeTDS.
Użyj mssql-cli ( instalacja , użycie ).
źródło
Pracuję w firmie, która intensywnie korzysta z produktów Microsoft. Wolę jednak pracować na komputerze z systemem Linux (Ubuntu). W szczególności używam Ubuntu 16.04 LTS .
Używam DataBrip JetBrains lub SQL Electron jako GUI SQL. DataGrip będzie wymagał sterownika Microsoft JDBC dla programu SQL Server, który należy wskazać ręcznie przy pierwszym otwarciu DataGrip. Wkładam to
/usr/share/java/
, ale wszędzie będzie działać.Połączenie jest proste na moim laptopie z systemem Windows 10. Po prostu otwieram SQL Server Management Studio i używam moich danych logowania do logowania (nazwa użytkownika + hasło); Nie używam uwierzytelniania systemu Windows.
Wymagania wstępne
Aby połączyć się z Ubuntu, jest to trochę ( tylko trochę ) dodatkowa praca. Najpierw na moim komputerze z systemem Windows 10 otwieram terminal Powershell i wpisuję następujące polecenie
i zwraca coś takiego
Nazwa i adres serwera będą statyczne, więc powyższe będzie potrzebne tylko raz na serwer, do którego próbujesz uzyskać dostęp.
DataGrip
Następnie wskakuję na maszynę z systemem Linux i otwieram DataGrip. Dla
Host
wpisywania I<server's address>
, Port: 1433 (jest to ustawienie domyślne dla MS SQL Server). Adres URL powinien wyglądać mniej więcej tak:Jeśli klikniesz
Test Connection
, wyświetli się monit o podanie danych logowania, jeśli jeszcze go nie dodałeś. I to wszystko dla DataGrip!DataGrip ma również następujący blog, który może być pomocny dla nowych użytkowników: Łączenie DataGrip z MS SQL Server
SQL Electron
Jeśli nie chcesz kupować DataGrip, możesz użyć SQL Electron. Kroki są podobne. Otwórz SQL Electron, kliknij dodaj, aby dodać nowy serwer, a następnie
Server Address
wpisz<server's address>
Port: 1433, a na koniec poświadczenia logowania. I to wszystko!źródło
Aby połączyć się z instancją MSSQL uruchomioną na zdalnym serwerze:
Wykonaj odpowiednie kroki opisane w tym artykule https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-ke words-and- data- source- names- dsns? view= sql -server-2017
UWAGA: Aby ukończyć testy, musisz zrobić jeszcze kilka rzeczy: Edytuj /etc/odbc.ini i dodaj:
Aby wykonać test, wykonaj następujące czynności w terminalu:
Powinieneś zobaczyć odpowiedź „połączoną”.
Jeśli masz problemy, sprawdź, czy porty na serwerze Linux i Windows są otwarte!
źródło