저는 Linux를 처음 접한 초보자이고 Windows 10에서 Debian으로 컴퓨팅을 마이그레이션하려고 합니다. MS Access 데이터베이스에 대한 공유 이중 부팅 액세스를 설정하는 데 어려움을 겪고 있습니다. unixODBC를 MariaDB(또는 MySQL)와 함께 작동시키는 것이 매우 어렵다는 것을 알았으므로 여기에서 내 질문에 답하면서 아래에서 작동 방식을 공유하겠습니다.
답변1
unixODBC 관리자를 사용하여 ODBC를 사용하여 Debian 8.6(Jessie-stable)에서 MariaDB 및 .mdb 데이터베이스에 연결하는 방법은 다음과 같습니다.
먼저 뭔가를 로드하세요:
- 패키지 로드: mariadb-server-10.1(MySQL 5.6용)
- 패키지 로드 중: unixodbc 2.3.1.3(unixODBC 2.3.0-4)
MariaDB.com에서 다운로드한 라이브러리: mariadb-connector-odbc-2.0.12-ga-linux-x86_64
Debian Jessie에 해당하는 패키지가 아직 없기 때문에 MariaDB.com에서 직접 이 정보를 얻어야 합니다.
그런 다음 압축이 풀린 libmaodbc.so 파일을 /usr/lib/x86_64-linux-gnu/libmaodbc.so로 이동합니다.
선택적 로드 패키지 unixodbc-bin 2.3.0-4(ODBC 관리 및 검색을 위한 그래픽 도구)
(참고: iODBC Manager가 작동하도록 시도하지는 않았지만 비슷해 보입니다.)
unixODBC에는 두 개의 설치 파일이 있습니다/etc/odbcinst.ini그리고/etc/odbc.ini. 직접 편집하거나 GUI 도구를 사용하여 설정할 수 있습니다. 드라이버 매개변수가 잘못된 경우 GUI 도구는 DNS를 설정하지 않습니다. 매개변수 오류 메시지와 같은 메시지가 나타납니다.
/etc/odbcinst.ini는 ODBC 드라이버 정보(ODBC 드라이버 라이브러리 파일)를 설정하고 /etc/odbc.ini는 이 드라이버 정보를 참조하여 DSN 또는 데이터 서버 이름(액세스할 데이터베이스)을 설정합니다.
또한 /etc/odbcinst.ini에서 두 개의 드라이버, 즉 기본 odbc 드라이버(또는 Driver=..)와 "Setup" 드라이버(또는 Setup=..)를 참조해야 합니다. 설치 프로그램 드라이버는 GUI 편집기의 보조자이며 기본 매개변수를 설정할 수 있는 것 같습니다(그리고 이를 확인할 수도 있습니다). 그러나 Maria ODBC 배포판은 이러한 드라이버 중 첫 번째 드라이버만 제공합니다. mysql을 사용하여 드라이버를 설치하면 두 번째 드라이버에 효과가 있다는 것을 알았습니다. 드라이버에 "S"가 있습니다(예: /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so). 패키지를 선택한 다음 속성 및 설치된 파일 탭을 클릭하면 Synaptic에 나열된 사용 가능한 드라이버를 찾을 수 있습니다.
여기 주석이 포함된 /etc/odbcinst.ini 파일이 있습니다. (아래는 내 /etc/odbc.ini 파일입니다.)
드라이버에는 전체 경로 이름이 필요한 것 같습니다. 또한 mdbtools(ODBC를 사용하여 MS Access *.mdb 파일에 액세스)에 대한 설정 매개변수도 포함했습니다. 또한 비밀번호와 mdb 데이터베이스 경로 이름/파일 이름은 따옴표로 묶을 필요가 없는 것 같습니다. 공백과 기타 특수 문자를 잘 처리합니다. (아마 "=" 외에)?
또한 나중에 참조할 수 있도록 아래 GUI 편집기에 마술처럼 나타나는 주석 처리된 옵션도 추가했습니다.
[mariadb]
Description=Maria DB
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
#The rest of these magically appear in the GUI driver (advanced) setup utility:
#Driver64=
#Setup64=
UsageCount=1
#CPTimeout=
#CPTImeToLive=
#DisableGetFunctions=
#DontDLCLose=
#ExFetchMapping=
#Threading=
#FakeUnicode=
#IconvEncoding=
#Trace=
#TraceFile=
#=================
[mdbtools]
Description=MDBTools Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so
#The rest of these magicaly appear in the GUI driver (Advanced) setup utility:
#Driver64=
#Setup64= Get error if include this param for mdbtools
# (even though it appears in the GUI list as null)
UsageCount=1
#CPTimeout=
#CPTImeToLive=
#DisableGetFunctions=
#DontDLCLose=
#ExFetchMapping=
#Threading=
#FakeUnicode=
#IconvEncoding=
#Trace=
#TraceFile=
#TraceLibrary=
/etc/odbc.ini(Debian에서 MariaDB가 노출하는 기본 소켓을 가리키도록 아래에서 소켓을 변경해야 합니다):
[mariadb-bb]
#Description - defaults to $Driver
Description=Bigbase
#Driver: Required. The name of the MariaDB ODBC Driver. Must be always {MariaDB ODBC 1.0 Driver}
# the 1.0 comment above is possibly outdated
Driver=mariadb
#Server: name or IP of the MariaDB database server. Aliases: Servername - defaults to null
Server=localhost
#Database: default database. Aliases: DB - defaults to 'test'
Database=somedatabase
#Port: TCP/IP Port of the database server - defaults to null
Port=3306
#When using Server=localhost we will be connecting thru the socket exposed by mariadb.
#You can find this socket file location&name in /etc/mysql/my.ini - defaults to null if missing
Socket=/var/run/mysqld/mysqld.sock
#Option: For MySQL Connector/ODBC compatibility. Aliases: Options - defaults to null
#(not sure what this is used for?)
#Option=
#Stmt - defaults to null (not sure what this is used for?)
#Stmt=
#---Optional----------------:
#DSN: Name of the DSN (not sure what this is used for?)
#DSN=
#User: user name for database authentication. Aliases: UID,
User=root
#Password: password for database authentication. Aliases: PWD
Password=bigdog
#=========
[PW]
Description=mdbtools
#Driver needs to point to a driver in /etc/odbcinst.ini
Driver=mdbtools
Database=/home/user/Shared/Documents/test.mdb
그런 다음 다음 두 도구를 사용하여 ODBC를 테스트할 수 있습니다.
/usr/bin/isql - Utility to submit SQL queries to a data source.
/usr/bin/iusql - Unicode version of isql.
참고: 예를 들어 sql 명령을 표준 입력으로 이러한 명령에 전달할 수 있습니다. echo "select * from tableA" | isql
그렇지 않으면 런타임 시 sql 행을 묻는 메시지가 표시됩니다 sql>
. 바라보다 man isql
. isql 옵션(예: 비밀번호)을 제공하면 /etc/odbc.ini 파일의 비밀번호를 무시합니다.
이것이 다른 사람들에게 도움이 되기를 바랍니다.
마지막으로 관련 패키지의 파일에 대한 몇 가지 설명은 다음과 같습니다.
* unixodbc:
unixodbc-bin 2.3.0-4 - Graphical tools for ODBC management and browsing
/usr/bin/ODBCManageDataSourcesQ4 - 1&2 ODBC Administrator
/usr/bin/ODBCCreateDataSourceQ4 - 2 create Data Source Name wizard
These are mentioned in the README file but are not in the package:
/usr/bin/odbcinstQ4 - a Qt based installer library/plugin (don't have)
/usr/bin/ODBCTestQ4 - an interactive test program (don't have)
/usr/bin/ODBCDataManagerQ4 - Data Manager (not done)
/usr/share/doc/unixodbc-bin/README
/usr/share/menu/unixodbc-bin - some sort of menu data file
Notes: Only works if both main driver and setup drivers exist.
unixodbc 2.3.1-3 - Basic ODBC tools
/usr/bin/isql - Utility to submit SQL queries to a data source.
/usr/bin/iusql - Unicode version of isql.
notes: Can either pipe standard input into them, e.g. echo "select * from m" | isql ...
or it will prompt for the sql> when run.
/usr/lib/odbc - the lib
/usr/share/doc/unixodbc/README
/usr/share/man/man1/isql.1.gz
/usr/share/man/man1/iusql.1.gz
libodbc1 2.3.1-3 ODBC library for Unix
/usr/lib/x86_64-linux-gnu/libodbc.so.1 -> libodbc.so.2
/usr/lib/x86_64-linux-gnu/libodbc.so.2 -> libodbc.so.2.0.0
/usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0 - lib odbc
/usr/lib/x86_64-linux-gnu/libodbccr.so.1 -> libodbccr.so.2
/usr/lib/x86_64-linux-gnu/libodbccr.so.2 -> libodbccr.so.2.0.0
/usr/lib/x86_64-linux-gnu/libodbccr.so.2.0.0 - lib odbc cr ?? cr, but I think like .rc (setup?)
/usr/lib/x86_64-linux-gnu/odbc/libnn.so - lib nn
/usr/share/lintian/overrides/libodbc1 - ?
-----------------------------------------------------------------------------------------
* myodbc:
libmyodbc 5.1.10-3 the MySQL ODBC driver
/usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so - the mysql driver
/usr/share/libmyodbc/odbcinst.ini - table of drivers
/usr/share/doc/libmyodbc/examples/odbc.ini - Example table of data sources
/usr/share/doc/libmyodbc/README.Debian - note about not building a -dev package
-----------------------------------------------------------------------------------------
* odbcinst:
libodbcinstq4-1 2.3.0-4 Qt-based ODBC configuration library
/usr/lib/x86_64-linux-gnu/libodbcinstQ4.so.1 -> libodbcinstQ4.so.1.1.1
/usr/lib/x86_64-linux-gnu/libodbcinstQ4.so.1.1.1
odbcinst 2.3.1-3 Helper program for accessing odbc ini files
/etc/odbc.ini - Setup table for list of DSN's. Each one points to a driver in /etc/odbcinst.ini
notes: don't need to quote special characters in file names like spaces or parens.
/usr/bin/odbcinst - - command line tool for batch ODBC configuration
run /usr/bin/odbinst or 'man odbcinst' for usage, e.g. syntax and options
/usr/share/man/man1/odbcinst.1.gz
odbcinst1debian2 2.3.1-3 Support library for accessing odbc ini files
/etc/ODBCDataSources - etc
/usr/lib/x86_64-linux-gnu/libodbcinst.so.1 -> libodbcinst.so.2
/usr/lib/x86_64-linux-gnu/libodbcinst.so.2 -> libodbcinst.so.2.0.0
/usr/lib/x86_64-linux-gnu/libodbcinst.so.2.0.0 - inst
/usr/lib/x86_64-linux-gnu/odbc/libesoobS.so - setup driver
/usr/lib/x86_64-linux-gnu/odbc/libmimerS.so - setup driver
/usr/lib/x86_64-linux-gnu/odbc/libodbcdrvcfg1S.so - setup driver - drvcfg1
/usr/lib/x86_64-linux-gnu/odbc/libodbcdrvcfg2S.so - setup driver - drvcfg2
/usr/lib/x86_64-linux-gnu/odbc/libodbcminiS.so - setup driver - mini
/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so - setup driver - my (mysql)
/usr/lib/x86_64-linux-gnu/odbc/libodbcnnS.so - setup driver - nn
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so - setup driver - psql
/usr/lib/x86_64-linux-gnu/odbc/libodbctxtS.so - setup driver - txt
/usr/lib/x86_64-linux-gnu/odbc/liboplodbcS.so - setup driver - opl odbc
/usr/lib/x86_64-linux-gnu/odbc/liboraodbcS.so - setup driver - ora odbc
j /usr/lib/x86_64-linux-gnu/odbc/libsapdbS.so - setup driver - sap db
/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so - setup driver - tds
/usr/share/lintian/overrides/odbcinst1debian2 - inst1 debian2
-----------------------------------------------------------------------------------------
* MDB:
odbc-mdbtools 0.7.1-2 MDB tools ODBC driver
/usr/lib/x86_64-linux-gnu/odbc/libmdbodbc.so - driver
/usr/lib/x86_64-linux-gnu/odbc/libmdbodbcW.so - ?
mdbtools 0.7.1-2 JET / MS Access database (MDB) tools
/etc/bash_completion.d/mdbtools - bash command completion extension
/usr/bin/mdb-array - Export data in an MDB database table to a C array
/usr/bin/mdb-export - Export data in an MDB database table to CSV format
/usr/bin/mdb-header - dump the names and types of the tables and columns
/usr/bin/mdb-hexdump - Hexdump utility from MDB Tools
/usr/bin/mdb-parsecsv - Convert CSV table dump into C file
/usr/bin/mdb-prop - Get properties list from MDB database
/usr/bin/mdb-schema - produces DDL (data definition language) output
/usr/bin/mdb-sql - allows querying MDB database using a limited SQL subset
/usr/bin/mdb-tables - Get listing of tables in an MDB database
/usr/bin/mdb-ver - Return the format of a given MDB database.
/usr/share/man/man1/mdb-array.1.gz
/usr/share/man/man1/mdb-export.1.gz
/usr/share/man/man1/mdb-header.1.gz
/usr/share/man/man1/mdb-hexdump.1.gz
/usr/share/man/man1/mdb-parsecsv.1.gz
/usr/share/man/man1/mdb-prop.1.gz
/usr/share/man/man1/mdb-schema.1.gz
/usr/share/man/man1/mdb-sql.1.gz
/usr/share/man/man1/mdb-tables.1.gz
/usr/share/man/man1/mdb-ver.1.gz
mdbtools-doc
/usr/share/doc-base/mdbtools-faq
/usr/share/doc-base/mdbtools-install
/usr/share/doc/mdbtools-doc/HACKING.gz
/usr/share/doc/mdbtools-doc/NEWS.gz
/usr/share/doc/mdbtools-doc/README.gz
/usr/share/doc/mdbtools-doc/TODO
/usr/share/doc/mdbtools-doc/faq.html
/usr/share/doc/mdbtools-doc/html/index.html - A Guide to Installing and Configuring MDB Tools
/usr/share/doc/mdbtools-doc/html/a304.htm
/usr/share/doc/mdbtools-doc/html/book1.htm
/usr/share/doc/mdbtools-doc/html/c29.htm
/usr/share/doc/mdbtools-doc/html/c42.htm
/usr/share/doc/mdbtools-doc/html/c98.htm
/usr/share/doc/mdbtools-doc/html/c180.htm
/usr/share/doc/mdbtools-doc/html/c202.htm
/usr/share/doc/mdbtools-doc/html/c260.htm
/usr/share/doc/mdbtools-doc/html/f19.htm
/usr/share/doc/mdbtools-doc/html/x53.htm
/usr/share/doc/mdbtools-doc/html/x86.htm
/usr/share/doc/mdbtools-doc/html/x90.htm
/usr/share/doc/mdbtools-doc/html/x94.htm
/usr/share/doc/mdbtools-doc/html/x196.htm
/usr/share/doc/mdbtools-doc/html/x199.htm
/usr/share/doc/mdbtools-doc/html/x231.htm
/usr/share/doc/mdbtools-doc/html/x244.htm
/usr/share/doc/mdbtools-doc/html/x251.htm
/usr/share/doc/mdbtools-doc/html/x276.htm
/usr/share/doc/mdbtools-doc/html/x289.htm
/usr/share/doc/mdbtools-doc/html/x314.htm
/usr/share/doc/mdbtools-doc/html/x324.htm
/usr/share/doc/mdbtools-doc/html/x328.htm
/usr/share/doc/mdbtools-doc/html/x334.htm
/usr/share/doc/mdbtools-doc/html/x370.htm
/usr/share/doc/mdbtools-doc/html/x375.htm
/usr/share/doc/mdbtools-doc/html/x379.htm
/usr/share/doc/mdbtools-doc/html/x383.htm
/usr/share/doc/mdbtools-doc/html/x386.htm
/usr/share/doc/mdbtools-doc/html/x389.htm
/usr/share/doc/mdbtools-doc/html/x394.htm
/usr/share/doc/mdbtools-doc/install.sgml.gz
mdbtools-gmdb 0.7.1-2 - JET / MS Access database (MDB) file viewer
/etc/bash_completion.d/mdbtools-gmdb - bash command completion extension
/usr/bin/gmdb2 - THE application (graphical interface)
/usr/share/applications/mdbtools-gmdb.desktop - setup?
/usr/share/gmdb/glade/gmdb-debug.glade - graphical
/usr/share/gmdb/glade/gmdb-export.glade
/usr/share/gmdb/glade/gmdb-prefs.glade
/usr/share/gmdb/glade/gmdb-props.glade
/usr/share/gmdb/glade/gmdb-schema.glade
/usr/share/gmdb/glade/gmdb-sql.glade
/usr/share/gmdb/glade/gmdb-tabledef.glade
/usr/share/gmdb/glade/gmdb.glade
/usr/share/gmdb/glade/code.xpm - images
/usr/share/gmdb/glade/debug.xpm
/usr/share/gmdb/glade/form_big.xpm
/usr/share/gmdb/glade/forms.xpm
/usr/share/gmdb/glade/logo.xpm
/usr/share/gmdb/glade/macro_big.xpm
/usr/share/gmdb/glade/macros.xpm
/usr/share/gmdb/glade/module_big.xpm
/usr/share/gmdb/glade/pk.xpm
/usr/share/gmdb/glade/query.xpm
/usr/share/gmdb/glade/query_big.xpm
/usr/share/gmdb/glade/report_big.xpm
/usr/share/gmdb/glade/reports.xpm
/usr/share/gmdb/glade/table.xpm
/usr/share/gmdb/glade/table_big.xpm
/usr/share/pixmaps/gmdb2.xpm
/usr/share/gmdb/glade/stock_export-16.png
/usr/share/gmdb/glade/stock_export.png
/usr/share/gnome/help/gmdb/C/figures/gmdb2_sql_window.png
/usr/share/gnome/help/gmdb/C/figures/gmdb2_window.png
/usr/share/gnome/help/gmdb/C/gmdb.xml
/usr/share/gnome/help/gmdb/C/legal.xml
/usr/share/man/man1/gmdb2.1.gz - GNOME UI for MDB Tools
/usr/share/menu/mdbtools-gmdb
-----------------------------------------------------------------------------------------
* mariadb-connect-engine=10.1
/etc/mysql/conf.d/connect.cnf
/usr/lib/mysql/plugin/ha_connect.so
* mariadb-connector-odbc-2.0.12-ga-linux-x86_64
/lib/libmaodbc.so -- moved this to: /usr/lib/x86_64-linux-gnu/libmaodbc.so
/share/doc/mariadb_connector_odbc/README
-----------------------------------------------------------------------------------------
* iodbc:
libiodbc2 3.52.9-2 iODBC Driver Manager
iodbc 3.52.9-2 GTK+ config frontend for the iODBC Driver Manager
/usr/bin/iodbcadm-gtk - graphical ODBC administration program using the GTK+ widget set.
/usr/bin/iodbctest - iODBC Demonstration programs
/usr/lib/x86_64-linux-gnu/libdrvproxy.so.2 - a link? lib drv proxy so
/usr/lib/x86_64-linux-gnu/libdrvproxy.so.2.1.20
/usr/lib/x86_64-linux-gnu/libiodbcadm.so.2 - a link? lib iodb adm
/usr/lib/x86_64-linux-gnu/libiodbcadm.so.2.1.20
/usr/share/doc/iodbc/README.Debian - not much help
/usr/share/lintian/overrides/iodbc
/usr/share/man/man1/iodbcadm-gtk.1.gz - graphical ODBC administration program
/usr/share/man/man1/iodbctest.1.gz - iODBC Demonstration programsq