SBC အမျိုးမျိုး၊ Platforms အမျိုးမျိုးမှာ သုံးချင်တာမို့ MySQL Connector/ODBC 8.0 ကို source ကနေ build လုပ်ပြီး တပ်ဆင် အသုံးပြု တဲ့ အကြောင်း ဆွေးနွေး ပါမယ်။ စစခြင်း အောက်က tools တွေကို စက်ထဲမှာ တပ်ဆင်ထားဖို့ လိုပါတယ်။
sudo apt install mysql-client libmysqlclient-dev sudo apt install unixodbc unixodbc-dev sudo apt install libgtk-3-dev cmake sudo apt install libssl-dev
Source ကိုရယူခြင်း
Connector/ODBC ကို အောက်က link မှာ ရယူနိုင် ပါတယ်။ Source ကနေ build လုပ်ချင်တာမို့ Select Operating System မှာ Source Code ကိုရွေးပြီး၊ Select OS Version မှာ Generic Linux (Architecture Independent) ကို ရွေးလိုက် ပါမယ်။https://dev.mysql.com/downloads/connector/odbc/8.0.html
ရလာတဲ့ ဖိုင်ကို extract လုပ်ပြီးတဲ့ အခါ၊ build လုပ်ဖို့ အတွက် အခန်း တစ်ခု ဖွဲ့လိုက် ပါမယ်။
$ tar zxvf ~/Downloads/mysql-connector-odbc-8.0.13-src.tar.gz $ cd mysql-connector-odbc-8.0.13-src/ $ mkdir build $ cd build
Build နှင့် Install လုပ်ခြင်း
ရလာတဲ့ source ကို ခုနက ဖန်တီးလိုက် တဲ့ build အခန်း ထဲ သွားပြီး unixodbc နဲ့ တွဲသုံးဖို့ အတွက် အောက်က အတိုင်း cmake နဲ့ build လုပ်ပြီး၊ install လုပ်နိုင် ပါတယ် [Ora18a]။$ cmake .. -G "Unix Makefiles" -DWITH_UNIXODBC=1 $ make $ sudo make installအကယ်၍ MySQL နဲ့ ပတ်သက်တဲ့ headers နဲ့ libraries တွေကို ရှာမတွေ့ တဲ့ ပြဿနာ ပေါ်ခဲ့ရင် အောက်က လိုမျိုး သတ်မှတ် ပေးဖို့ လိုနိုင် ပါတယ်။
$ export MYSQL_INCLUDE_DIR=/usr/local/mysql/include $ export MYSQL_LIB_DIR=/usr/local/mysql/lib $ export MYSQL_DIR=/usr/local/mysqlပြီးတဲ့ အခါ /usr/local/lib ထဲမှာ
- libmyodbc8a.so
- libmyodbc8w.so
- libmyodbc8S.so
$ find / -name 'lib*odbc*.so'
DSN
unixODBC က သုံးမယ့် ODBC driver ကို သိဖို့ လိုတဲ့ အတွက် register လုပ်ပေး ပါမယ် [Coo18a, Ora18b]။ အဲဒီ အတွက် /etc/odbcinst.ini ကို edit လုပ်ဖို့ အောက်က အတိုင်း ဖွင့်နိုင် ပါတယ်။$ sudo nano /etc/odbcinst.iniဖိုင်ပွင့် လာတဲ့ အခါ အဲဒီ အထဲမှာ အောက်က အတိုင်း ဖြည့်ပြီး ctrl+o နဲ့ ctrl+x နှိပ် သိမ်းပြီး ပိတ်လိုက် ပါမယ်။
[myodbc8a] Description = Connector/ODBC 8.0 ANSI Driver DSN Driver = /usr/local/lib/libmyodbc8a.so Setup = /usr/local/lib/libmyodbc8S.so [myodbc8w] Description = Connector/ODBC 8.0 UNICODE Driver DSN Driver = /usr/local/lib/libmyodbc8w.so Setup = /usr/local/lib/libmyodbc8S.soအဲဒီနောက် ODBC Data Source Name (DSN) တွေကို /etc/odbc.ini ထဲမှာ သတ်မှတ် နိုင် ပါတယ်။
$ sudo nano /etc/odbc.iniနဲ့ ဖိုင်ကို edit လုပ်ဖို့ ဖွင့်ပြီး၊ အဲဒီ အထဲမှာ အောက်က အတိုင်း ဖြည့််လိုက် ပါမယ်။
[ODBC Data Sources] myodbc8w = MyODBC 8.0 UNICODE Driver DSN myodbc8a = MyODBC 8.0 ANSI Driver DSN [myodbc8w] Driver = /usr/local/lib/libmyodbc8w.so Description = Connector/ODBC 8.0 UNICODE Driver DSN SERVER = localhost PORT = 3306 USER = Password = Database = mytest OPTION = 3 SOCKET = [myodbc8a] Driver = /usr/local/lib/libmyodbc8a.so Description = Connector/ODBC 8.0 ANSI Driver DSN SERVER = localhost PORT = 3306 USER = Password = Database = mytest OPTION = 3 SOCKET =အဲဒီ မှာ USER အတွက် username နဲ့ Password တို့ကို ဖြည့်ချင်ရင် ဖြည့်နိုင် ပါတယ်။ SOCKET ကို ဘာမှ ဖြည့် စရာ မလို ပါဘူး။ အကယ်၍ socket error ရှိရင်တော့ အောက်က အတိုင်း mysqld.sock ရဲ့ path ကို ဖြည့်နိုင် ပါတယ်။
SOCKET = /var/run/mysqld/mysqld.sock
Database ကို စမ်းသပ် အသုံးပြုဖို့ အတွက် isql ဆိုတဲ့ command line tool ကို သုံးပြီး myodbc8a ကို အောက်ပါ အတိုင်း ဆက်ကြည့် ပါမယ်။
$ isql -v myodbc8aအကယ်၍ lib ကိုဖွင့် မရပဲ file not found ဆိုတဲ့ ပြဿနာ တက်ရင်တော့ လိုအပ်တဲ့ client library ကို အောက်ပါ အတိုင်း ကူးထည့် ပေးနိုင် ပါတယ်။
$ sudo cp /usr/local/mysql/lib/libmysqlclient.so.21 /usr/local/lib/အဲဒီ နောက်မှာ တော့ အောက်က link မှာ ဖော်ပြထားတဲ့ ODBC client application တွေမှာ DSN အသစ် ကို သုံးပြီး ဆက်သွယ် အသုံးပြု လို့ ရပါပြီ။
Using MS SQL Server from C++ with wxWidgets
အကိုးအကားများ
[Ora18a] Oracle. Building Connector/ODBC from a Source Distribution on Unix. 2018.
url: https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation-source-unix.html.
[Ora18b] Oracle. Configuring a Connector/ODBC DSN on Unix. 2018.
url: https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-dsn-unix.html.
[Coo18a] Cool Emerald. Using Microsoft SQL Server from Linux Machines with ODBC & FreeTDS. 2018.
url: http://cool-emerald.blogspot.com/2018/10/using-microsoft-sql-server-from-linux.html.
No comments:
Post a Comment