NodejsODBC接続ソリューション



Nodejs Odbc Connection Solution




再版が必要な場合は、出典を明記してください。 http://blog.csdn.net/itas109
QQ技術交流グループ: 129518033

記事のディレクトリ

周囲:
ウィンドウズ:
OS:win764ビット
Node:10.15.3 64bit
node-gyp:6.0.0
コンパイラ:vs2015
python:2.7.5
非同期:3.0.1(odbcに依存)
node-addon-api:1.7.1(odbcに依存)
odbc:2.2.1
postgresql:10.10



Linux:
OS:deepIn 15.11
Node:10.15.3 64bit
node-gyp:6.0.0
コンパイラ:gcc 6.3.0 20170516
python:2.7.5
unixodbc:2.3.7
非同期:3.0.1(odbcに依存)
node-addon-api:1.7.1(odbcに依存)
odbc:2.2.1
postgresql:10.10


1.odbcの下のウィンドウ

1.1ノードとnode-gypをインストールします

少し



1.2 nodejsodbcモジュールをインストールします

npm i odbc

または

cnpm i odbc

画像

1.3odbcデータソースを設定する

ここで例としてPostgreSQLを取り上げます。
画像



1.4テストコード

const odbc = require('odbc') async function queryDB() { const connectionConfig = { connectionString: 'DSN=PostgreSQL30', connectionTimeout: 10, loginTimeout: 10, } const connection = await odbc.connect(connectionConfig) const result = await connection.query('SELECT * FROM student') console.log(JSON.stringify(result))// [{'name':'ZhangSan','age':18}] } queryDB()

画像

2.Linuxでのodbc

2.1ノードとnode-gypをインストールします

少し
画像

2.2 nodejsodbcモジュールをインストールします

npm i odbc

または

cnpm i odbc

2.3unixodbcをインストールします

2.3.1unixodbcをダウンロードする

ダウンロード unixodbc 2.3.7

MD5:274a711b0c77394e052db6493840c6f9

2.3.2unixodbcをコンパイルしてインストールします

./configure --prefix=/usr/local/unixODBC-2.3.7 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc make -j 8 make install

2.3.3Unixodbcテスト

odbcinst -j

画像

注意:
これは、ダイナミックライブラリのインストールパスが見つからないためです。 1つの種類の処理は、上記の./configureパラメーターに従って構成することであり、別の種類はソフトリンクです。

odbcinst -j odbcinst: error while loading shared libraries: libodbcinst.so.2: cannot open shared object file: No such file or directory

2.4 PostgreSQLODBCドライバーのインストール

2.4.1psqlodbc-10.03ソースコードのコンパイル

ダウンロードリンク:
psqlodbc-10.03

sudo ./configure --with-libpq=/opt/PostgreSQL/10 sudo make -j 8 sudo make install

その中で、-with-libpqパラメータはpgインストールのルートディレクトリであり、デフォルトのパスは/ opt / PostgreSQL / 10です。

画像

2.4.2コマンドのインストール

sudo apt-get install odbc-postgresql

その他:
mysql

sudo apt-get install libmyodbc

2.5odbcデータソースを設定する

2.5.1手動構成

  • /usr/local/etc/odbcinst.ini構成
[PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/x86_64-linux-gnu/odbc/psqlodbca.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so FileUsage = 1

検証:

$ odbcinst -q -d [PostgreSQL]
  • /usr/local/etc/odbc.iniシステムデータソース構成
[PostgreSQL30] Description = PostgreSQL connection Driver = PostgreSQL Database = test Servername = localhost UserName = postgres Password = 123456 Port = 5432 Protocol = 8.1 ReadOnly = No RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No ConnSettings =

検証:

$ isql PostgreSQL30 +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>

注意:
LinuxネイティブPostgreSQLデータベースに接続していない場合は、LinuxがPostgreSQLに正常に接続できることを確認する必要があります。
デフォルトでは、PostgreSQLはローカルでのみ接続できます。
たとえば、が表示されます

$ isql PostgreSQL301 [ISQL]ERROR: Could not SQLConnect

pgAdmin 4を使用して接続を試みると、さらに多くのエラーが表示されます。

2.5.2GUIイメージの構成

unixODBC-GUI-Qt
Skip for now

2.6テストコード

const odbc = require('odbc') async function queryDB() { const connectionConfig = { connectionString: 'DSN=PostgreSQL30', connectionTimeout: 10, loginTimeout: 10, } const connection = await odbc.connect(connectionConfig) const result = await connection.query('SELECT * FROM student') console.log(JSON.stringify(result))// [{'name':'ZhangSan','age':18}] } queryDB()

画像

3.ODBCブログ投稿バックアップのインストールと構成

ODBCのインストールと構成

ODBCコネクタはデータベース抽象化レイヤーであり、開発者がAsteriskがサポートするデータベースごとに個別のデータベースコネクタを作成しなくても、Asteriskがさまざまなデータベースと通信できるようにします。これにより、開発の労力とコードのメンテナンスを大幅に節約できます。 Asteriskとデータベースの間に別のアプリケーション層を追加するため、わずかなパフォーマンスコストが発生しますが、これは適切な設計で軽減でき、Asteriskシステムで強力で柔軟なデータベース機能が必要な場合は十分に価値があります。

Asteriskにコネクタをインストールする前に、Linux自体にODBCをインストールする必要があります。 ODBCドライバーをインストールするには、次のいずれかのコマンドを使用します。
CentOSの場合:

$ sudo yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel

64ビットインストールを使用している場合は、開発パッケージの最後に.x86_64を追加して、i386パッケージもインストールされていないことを確認してください。Asteriskが間違ったライブラリにリンクすると、安定性の問題が発生する可能性があります。

Ubuntuの場合:

$ sudo apt-get install unixODBC unixODBC-dev

インストールする必要のあるパッケージのマトリックスについては、第3章「Asteriskのインストール」を参照してください。

また、unixODBC開発パッケージをインストールする必要があります。これは、AsteriskがunixODBC開発パッケージを使用して、この章全体で使用するODBCモジュールを構築するためです。

ディストリビューションに同梱されているunixODBCドライバーは、多くの場合、http://www.unixodbc.orgWebサイトで公式にリリースされたバージョンよりも数バージョン遅れています。 unixODBCの使用中に安定性の問題が発生した場合は、ソースからインストールする必要がある場合があります。必ず最初にパッケージマネージャーを介してunixODBCドライバーを削除してから、/ etc /odbcinst.iniファイルのパスを更新してください。

デフォルトでは、CentOSはODBC経由でPostgreSQLデータベースに接続するためのドライバーをインストールします。 MySQLのドライバをインストールするには、次のコマンドを実行します。

$ sudo yum install mysql-connector-odbc

UbuntuにPostgreSQLODBCコネクタをインストールするには:

$ sudo apt-get install odbc-postgresql

または、MySQLODBCコネクタをUbuntuにインストールするには:

$ sudo apt-get install libmyodbc

PostgreSQL用のODBCの構成
PostgreSQL ODBCドライバーの構成は、/ etc /odbcinst.iniファイルで行われます。

CentOSでは、デフォルトファイルにはPostgreSQLのデータを含むいくつかのデータがすでに含まれているため、データが存在することを確認してください。ファイルは次のようになります。

[PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/libodbcpsql.so Setup = /usr/lib/libodbcpsqlS.so FileUsage = 1

Ubuntuでは、/ etc / odbcinst.iniファイルは空白になるため、その構成ファイルにデータを追加する必要があります。以下をodbcinst.iniファイルに追加します。

[PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/odbc/psqlodbca.so Setup = /usr/lib/odbc/libodbcpsqlS.so FileUsage = 1

64ビットシステムでは、正しいライブラリファイルにアクセスするために、ライブラリのパスを/ usr / lib /から/ usr / lib64 /に変更する必要があります。

いずれの場合も、他の章で行ったように、cat> /etc/odbcinst.iniを使用してクリーンな構成ファイルを作成できます。完了したら、Ctrl + Dを使用してファイルを保存するだけです。

次のコマンドを実行して、システムがドライバーを認識できることを確認します。すべてが順調であれば、ラベル名PostgreSQLを返す必要があります。

$ odbcinst -q -d [PostgreSQL]

次に、/ etc / odbc.iniファイルを構成します。このファイルは、Asteriskがこの構成を参照するために使用する識別子を作成するために使用されます。将来、データベースを別の場所に変更する必要がある場合は、このファイルを再構成するだけで、Asteriskが引き続き同じ場所を指すようになります[141]。

[asterisk-connector] Description = PostgreSQL connection to 'asterisk' database Driver = PostgreSQL Database = asterisk Servername = localhost UserName = asterisk Password = welcome Port = 5432 Protocol = 8.1 ReadOnly = No RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No ConnSettings =

MySQL用のODBCの構成
MySQL ODBCドライバーの構成は、/ etc /odbcinst.iniファイルで行われます。

CentOSでは、デフォルトファイルにはMySQLのデータを含むいくつかのデータがすでに含まれていますが、コメントを解除する必要があり、いくつかの変更が必要です。既存のテキストを次のように置き換えます。

[MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc3.so Setup = /usr/lib/libodbcmyS.so FileUsage = 1

Ubuntuでは、/ etc / odbcinst.iniファイルは空白になるため、その構成ファイルにデータを追加する必要があります。以下をodbcinst.iniファイルに追加します。

[MySQL] Description = ODBC for MySQL Driver = /usr/lib/odbc/libmyodbc.so Setup = /usr/lib/odbc/libodbcmyS.so FileUsage = 1

64ビットシステムでは、正しいライブラリファイルにアクセスするために、ライブラリのパスを/ usr / lib /から/ usr / lib64 /に変更する必要があります。

いずれの場合も、他の章で行ったように、cat> /etc/odbcinst.iniを使用してクリーンな構成ファイルを作成できます。完了したら、Ctrl + Dを使用してファイルを保存するだけです。

次のコマンドを実行して、システムがドライバーを認識できることを確認します。すべてが順調であれば、ラベル名MySQLを返す必要があります。

$ odbcinst -q -d [MySQL]

次に、/ etc / odbc.iniファイルを構成します。このファイルは、Asteriskがこの構成を参照するために使用する識別子を作成するために使用されます。将来、データベースを別の場所に変更する必要がある場合は、このファイルを再構成するだけで、Asteriskが引き続き同じ場所を指すようになります。

[asterisk-connector] Description = MySQL connection to 'asterisk' database Driver = MySQL Database = asterisk Server = localhost UserName = asterisk Password = welcome Port = 3306 Socket = /var/lib/mysql/mysql.sock

この記事はあなたに役立つと思います。QRコードをスキャンしてブロガーに寄付することができます。ありがとうございます。
画像
再版が必要な場合は、出典を明記してください。 http://blog.csdn.net/itas109
QQ技術交流グループ: 129518033


ライセンス

CC BY-NC-ND 4.0に基づくライセンス:帰属-非営利目的-解釈は禁止されています


参照:
1.https://www.npmjs.com/package/odbc
2.https://github.com/markdirish/node-odbc/
3.http://www.unixodbc.org/
4.http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/installing_configuring_odbc.html