এমএস এসকিউএলকে ফ্রিড্ডস এবং ইউনিক্সডবিসি: আইএসকিএল ব্যবহার করে সংযুক্ত করা হচ্ছে - কোনও ডিফল্ট ড্রাইভার নির্দিষ্ট করা হয়নি


28

আমি এমপি এসকিউএল ডাটাবেসে ফ্রিডিডস এবং ইউনিক্সডবিসি ব্যবহার করে সংযোগ দেওয়ার চেষ্টা করছি । এটি কীভাবে করা যায় আমি বিভিন্ন গাইড পড়েছি তবে আমার পক্ষে কেউ ঠিকঠাক কাজ করে না। আমি যখন আইএসকিএল সরঞ্জামটি ব্যবহার করে ডাটাবেসের সাথে সংযোগ করার চেষ্টা করি তখন আমি নিম্নলিখিত ত্রুটিটি পাই:

$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect

ইতিমধ্যে কেউ উবুন্টু ১২.০৪-তে ফ্রয়েড্ডস এবং ইউনিক্সডবিসি ব্যবহার করে এমএস এসকিউএল ডাটাবেসের সাথে সফলভাবে সংযোগ স্থাপন করেছেন ? আমি সত্যিই কিছু সাহায্য প্রশংসা করব।

নীচে আমি ফ্রিটিডস এবং ইউনিক্সডবিসি কনফিগার করার জন্য ব্যবহার করেছিলাম । আগাম আপনার সহায়তার জন্য ধন্যবাদ!

কার্যপ্রণালী

প্রথমত, আমি নিম্নলিখিত প্যাকেজগুলি এর সাথে ইনস্টল করেছি:

sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc

এবং নিম্নলিখিতভাবে কনফিগার করা ফ্রেট্ডস :

--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8

Tsql সরঞ্জাম ব্যবহার করে আমি সফলভাবে নির্বাহ করে ডাটাবেসের সাথে সংযোগ করতে পারি

tsql -S TS -U username -P password

আমার যেমন একটি ওডিবিসি সংযোগ দরকার আমি নীচে odbcinst.ini কনফিগার করেছি :

--- /etc/odbcinst.ini ---
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout =
CPResuse  =
client charset = utf-8

এবং odbc.ini নিম্নলিখিত হিসাবে:

--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No

এই জাতীয় কনফিগারেশনের সাথে আইএসকিএল সরঞ্জাম ব্যবহার করে ডাটাবেসের সাথে সংযোগ স্থাপনের চেষ্টা করা নিম্নলিখিত ত্রুটির ফলস্বরূপ:

$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect

ব্যবহারের জন্য tsql:sudo apt-get install freetds-bin
স্টিভি জি

উত্তর:


17

ধন্যবাদ, আপনার পোস্টটি আমার জন্য খুব দরকারী ছিল। আমি আমার odbcinst.ini ফাইল থেকে নিম্নলিখিত লাইনগুলি সরিয়ে এটির কাজ করতে সক্ষম হয়েছি

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout =
CPResuse  =
client charset = utf-8

সুতরাং এখন আমার odbcinst.ini ফাইলটি দেখতে এমন দেখাচ্ছে:

--- /etc/odbcinst.ini ---
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

এবং আমার odbc.ini ফাইলটি এখন দেখতে এমন দেখাচ্ছে:

--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Server = SERVER
Port = 1433
Database = DBNAME

একবার আমি সবকিছুই সহজ করে দিয়েছিলাম এটি দুর্দান্ত কাজ করেছিল। আমি এখনও এটি আরওডিবিসির সাথে কাজ করতে পারি না তবে এটি আইএসকিএল দিয়ে কাজ করে।

আমি জানি না এটি সাহায্য করবে কিনা তবে আপনার পোস্টটি আমাকে সহায়তা করেছিল। ধন্যবাদ।


ধন্যবাদ, স্পষ্টভাবে নিখোঁজ ড্রাইভারের সাথে সম্পর্কিত/etc/odbcinst.ini
দেজন

1
আরে দুর্দান্ত উত্তর কিন্তু দুর্ভাগ্যক্রমে আমি আপনার ফাইলগুলি অনুলিপি করেও এটি কার্যকর করতে সক্ষম হয়েছি না। কারণ নিয়ে কোন চিন্তাভাবনা কেন? এটি বেশ কিছুটা একই, সার্ভার অংশটি বাদে আমি একটি আইপি ব্যবহার করি না নাম। আপনি কি মনে করেন যে এটি হতে পারে? অনেক অনেক ধন্যবাদ
পেড্রো ব্রাজ

14

এটি উবুন্টু 14.04.1 এলটিএসের সাথে অ্যাজুরে এসকিউএল ডেটাবেসকে কীভাবে সংযুক্ত করা যায় এটি একটি ন্যূনতম তবে সম্পূর্ণ উদাহরণ isql। উদাহরণটি উবুন্টু থেকে অ্যাজুরে এসকিউএল ডেটাবেসকে কীভাবে সংযুক্ত করা যায় তা থেকে বের করা হয়েছে (দাবি অস্বীকার: এটি আমার ব্যক্তিগত উইকি)।

প্রয়োজনীয় প্যাকেজ ইনস্টল করুন

$ sudo apt-get -y install freetds-bin tdsodbc unixodbc

ফ্রিটিডিএস কনফিগার করুন

ফাইল /etc/freetds/freetds.conf

[global]
tds version = 7.1

[<SERVERNAME>]
host = <HOST>.database.windows.net
port = 1433

পরীক্ষামূলক সংযোগ

এই মুহুর্তে সংযোগ স্থাপন tsqlকাজ করা উচিত:

$ tsql -S <SERVERNAME> -U <USERNAME>@<HOST> -P <PASSWORD>

নোট যে @<HOST>প্রয়োজন। অন্যথায় সংযোগটি একটি ত্রুটির সাথে শেষ হয়:

Msg 40531 (severity 11, state 1) from [<SERVERNAME>] Line 1:
    "Server name cannot be determined.  It must appear as the first segment of the server's dns name (servername.database.windows.net).  Some libraries do not send the server name, in which case the server name must be included as part of the user name (username@servername).  In addition, if both formats are used, the server names must match."
Error 20002 (severity 9):
    Adaptive Server connection failed
There was a problem connecting to the server

ওডিবিসি ড্রাইভার কনফিগার করুন

ফাইল /etc/odbcinst.ini

[FreeTDS]
Description = FreeTDS Driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

ওডিবিসি ডেটা উত্সগুলি কনফিগার করুন

ফাইল /etc/odbc.ini

[<DATA_SOURCE_NAME>]
Driver = FreeTDS
Servername = <SERVERNAME>
Port = 1433
Database = <DBNAME>

<SERVERNAME>ভিতরে চেয়ে একই freetds.conf

আইএসকিএল এর সাথে সংযুক্ত হন

$ isql -v <DATA_SOURCE_NAME> <USER>@<HOST> <PASSWORD>
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select current_timestamp
+------------------------+
|                        |
+------------------------+
| 2015-01-02 09:05:55.593|
+------------------------+
SQLRowCount returns 1
1 rows fetched
SQL>

নোট যে @<HOST>প্রয়োজন। অন্যথায় সংযোগটি একটি ত্রুটির সাথে শেষ হয়:

[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[37000][unixODBC][FreeTDS][SQL Server]Server name cannot be determined.  It must appear as the first segment of the server's dns name (servername.database.windows.net).  Some libraries do not send the server name, in which case the server name must be included as part of the user name (username@servername).  In addition, if both formats are used, the server names must match.
[ISQL]ERROR: Could not SQLConnect

@<HOST>আর প্রদর্শিত হয় প্রয়োজনীয় হতে পারে।
অ্যাড্রিয়ান কেইস্টার

7

আমার ক্ষেত্রে সমস্যাটি আমার কনফিগার ফাইলে সাধারণ ইনডেন্টের কারণে উত্থিত হয়েছিল। সুতরাং /etc/odbc.ini, আমি সমস্ত ইনডেন্ট এবং ভয়েলা সরিয়েছি !

( odbcinst.iniএকটি সাধারণ ছাগলছানাটির মতো আচরণ করে এবং কোনওরকম ঝোঁক ছুঁড়ে ফেলেছে বলে মনে হয় না))


ধন্যবাদ! আমি দেখছি যে এই কনফিগারটিটি ২ ঘন্টা ধরে ধরে রাখার চেষ্টা করছে যে সাদা স্থানটি সমস্যা।
অ্যালেক্স বার্কার

3

12.04 এর আগে উবুন্টুর /etc/odbcinst.ini ফাইলে আলাদা ওডবিসি পথ ছিল।

পুরানো ড্রাইভারের পথটি ছিল:

Driver = /usr/lib/odbc/libtdsodbc.so

আমি এটিকে পরিবর্তন করেছি:

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

এখানে সম্পূর্ণ কনফিগারেশন:

--- /etc/odbcinst.ini ---
[FreeTDS]
Description = tdsodbc
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout = 5
CPReuse = 5

এখন কবজির মতো কাজ করে! ধন্যবাদ!


সেটআপ লাইনটি এখন অবহেলিত?
অ্যাড্রিয়ান কেইস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.