Portál AbcLinuxu, 15. května 2024 23:03
Chcete-li využívat databázi MySQL v součinnosti s kancelářským balíkem OpenOffice.org, přijdou vám vhod následující postřehy a návod.
Trocha som sa potrápil s tým, aby som rozchodil OpenOffice 1.1.1 s MySQL 4.x. Ak sa chcete pokúsit o to isté, môže sa vám zísť to, čo nájdete v nasledujúcich odstavcoch. Je pravdepodobné, že existujú kratšie cesty, ako spojiť OpenOffice s MySQL - napríklad použiť JDBC alebo nájsť samostatný ODBC driver pre MySQL.
Celý cirkus sa odohráva na Slackwari, ktorý na 90 % zodpovedá verzii -current
MySQL na Slackwari nechodí samo od seba. Potrebujete spustit príkaz
mysql_install_db
s menom databázy (schémy), ktorú chceme vytvoriť:
# mysql_install_db reports
|
Z nejakého dôvodu inštalácia zabudla nastaviť práva pre adresár
/var/lib/mysql/mysql
, o čom som sa dočítal v logu
/var/lib/mysql/*.err
. Napravíme to rýchlo:
# chown -R mysql.mysql /var/lib/mysql/mysql
|
Potom už môžeme nastaviť heslo pre užívateľa root, tak ako nám bolo odporúčané
vo výstupe z mysql_install_db
:
# mysqladmin -u root password mojetajneheslo
|
Posledným krokom je naštartovať MySQL
# /etc/rc.d/rc.mysql start
|
Tento krok môže byť na iných distribúciách iný, ale v princípe tento
skript spúšťa /usr/bin/mysqld_safe
, ktorému sa prípadne
špecifikuje dátový adresár, pid-súbor a podobne.
Chodí bez problémov sám, takže jeho inštaláciu nebudem rozoberať. Spomeniem
len, že som ho nainštaloval len pre seba a to do adresára
/home/rastos/OpenOffice1.1.1
.
OpenOffice.org vie komunikovať s MySQL buďc cez JDBC alebo ODBC. Pri pokuse o
použitie ODBC sa dostaneme k chybovej hláške o chýbajúcej či vadnej
libodbc.so
.
Cez položku v menu spustíme manažér dátových zdrojov:
Vytvoríme nový MySQL zdroj:
Tento zdroj treba prepojiť s ODBC zdrojom na nasledujúcej záložke:
Pri nastavovaní URL zdroja dát dostaneme chybovú hlášku:
Dobre, ideme teda pre správne ODBC.
Po krátkom hľadaní na Freshmeat.net a Google som dospel k názoru, že potrebujem balík unixODBC. Stiahol som zdrojáky aktuálnej verzie (2.2.8) a nasledoval, klasický postup:
$ tar xfz /mnt/usb/unixODBC-2.2.8.tar.gz
|
Mám vo zvyku inštalovať balíky nepochádzajúce z distribúcie na zvláštne
miesto, takže som použil prepínač --prefix=/usr/local/unixODBC
.
Či to urobíte aj vy, je na vás. Nasledovalo skompilovanie balíka:
$ make
|
Buildovanie trvalo kupodivu celkom dlho - asi toľko, ako buildovanie jadra. Ale prešlo bez zjavných problémov a takmer bez warningov. Ďalší krok asi tiež poznáte:
$ su
|
Pretože ja som použil prepínač --prefix
, musel som pridať adresár s
nainštalovanými knižnicami do /etc/ld.so.conf
a ako root spustiť
ldconfig
.
Dosiaľ išlo všetko bez problémov a ja som sa nazdával, že už bude všetko
fungovať. Omyl. Najprv treba ODBC nakonfigurovať - programom
ODBCConfig
. Kto konfiguroval ODBC pod MS Windows, bude mu
niečo povedomé:
Prvým krokom je pridanie ovládača:
Hoci dialog už obsahuje cestu do adresára, kde treba hľadať príslušný ovládač,
tým sa automatika končí. Nápoveda hovorí, že treba zvoliť súbor, ktorý má
pravdepodobne príponu .so
, ale to je všetko. Tipol som si, že
bude mať v mene písmena my
, ale žiaden taký súbor nainštalovaný nebol.
Takže späť k dokumentácii a Googlu. Zistil som, že vývojári unixODBC
nenapísali drajver pre MySQL, ale zaradili do projektu kód, ktorý napísali
vývojári MySQL. Tento kód sa nachádza v adresári Drivers/MySQL
a má vlastný skript configure
. Treba ho spúšťať s rovnakými
parametrami ako configure pre samotne unixODBC, ale treba navyše spustiť s
parametrom --with-unixODBC
a adresárom, kam bolo nainštalované
unixODBC:
$ ./configure --prefix=/usr/local/unixODBC --with-unixODBC=/usr/local/unixODBC
|
Problém bol v tom, že tento kód funguje s MySQL verzie 3.x - a nepodarilo sa mi ho na prvý pokus skompilovať. Vyskytlo sa väčšie množstvo warningov a nakoniec kompilovanie zlyhalo:
options.c:415: error: structure has no member named `timeout'
|
Nebudem to naťahovať. MySQL 4.x má v istej štruktúre namiesto jednej
položky timeout
položky read_timeout
a
write_timeout
. Prepísal som teda timeout
na read_timeout
.
Ako som neskôr zistil, bolo treba opraviť aj tie warningy, pretože
MySQL zmenilo počet a aj poradie(!) položiek v štruktúre
MYSQL_FIELD
, takže z toho bola nakoniec celkom slušná
záplata. Po jej aplikovaní:
cd unixODBC-2.2.8
|
už kompilácie prebieha hladko a dopracujeme sa k
vytúženým ovládačom pre MySQL - libmyodbc3.so
a
libodbcmyS.so
- nezabudnite ich nainštalovať pomocou make install
a zbehnúť ldconfig. Potom môžeme konečne ten ovládač použiť:
S pridaným ovládačom môžeme nadefinovať zdroj dát. Pretože nie som expert a nechcel som zaneplešiť systém, nadefinoval som užívateľský zdroj dát a nie systémový:
Nezabudnite vyplniť meno databázy (schémy), s ktorou je zdroj dát viazaný -
v mojom prípade reports
. Potom môžeme vyskúšať ďalšiu aplikáciu,
s ktorou prichádza unixODBC - DataManagerII
:
Dokáže zobraziť štruktúru databázy, tabuliek, kľúče, indexy ale aj zbehnúť
SQL príkazy. Naljepšie však na tom je, že sa rozbehne aj OpenOffice.org.
Dopíšte Data source URL
.
a nezabudnite dopísať užívateľa. Root nie je asi to najvhodnejšie,
ale na ukážku stačí. Po prepnutí na záložku Tables
či
Queries
sa dostanete k veciam, ktoré pre mňa osobne
boli prekvapením.
Ak ste sa prepracovali až sem, gratulujem vám a ako odmenu môžete použiť funkciu Mail Merge v OpenOffice s použitím svojho novovytvoreného zdroja dát.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.