让MySQL与OpenOffice共舞

  • 来源: 互联网 作者: rocket   2008-03-18/16:52
  • 年前,我成为了Linux用户的一员,但是多年使用Windows,让我觉得Linux有的工具使用不很习惯。就拿数据库来说,在Windows下,开发一些数据库驱动的网站或者小型管理系统时可以选择使用Access。Access不仅易于使用,而且非常方便。转到Linux上后,做同样事情时发现MySQL是一个不错的选择,但其没有图形界面,使用起来不是很方便,于是希望能够找到解决的方案。经过一段时间的探寻,终于找到了解决办法,即把MySQL和OpenOffice结合使用。根据资料显示,实现MySQL和OpenOffice协同工作的方法有很多种,不过大都过于复杂,难于实现。在此我介绍两种安装和配置过程。

    我使用的操作系统是Red Hat 8.0,同样的方法用于其它的发行版可能稍有不同。在安装配置过程中,需要MySQL和unixODBC软件包(OpenOffice缺省情况下已经安装好了)。这些软件包在Red Hat 8.0的光盘中都已经自带,但在我的测试中,使用安装盘的方法似乎无法成功。

    安装配置方法一

    1.下载软件

    所需要的软件包有:

    mysql-3.23.55-pc-linux-i686.tar

    MySQL-client-3.23.55-1.i386

    MySQL-shared-3.23.55-1.i386

    MyODBC-2.50.39-1.i386

    unixODBC-2.2.4.tar

    这些软件包可分别可从以下站点下载:

    http://mirrors.sunsite.dk/mysql/Downloads/MySQL-3.23/

    http://mysql.azc.uam.mx/Downloads/MyODBC/

    http://www.unixodbc.org 

    上面所列的是我感觉速度比较快的站点,事实上在很多镜像站点都可以下载到这些软件包。

    2.安装软件

    使用以下命令(以root身份)来查看以前是否安装过:

    rpm -qa | grep -i mysql

    rpm -e (发现的所有软件包)

    updatedb

    rpm -qa | grep -i odbc

    rpm -e (所有发现的软件包) 

    切换至下载的软件包所在的目录,以root用户的身份执行以下命令:

    $cd /usr/local

    $tar xzf mysql-3.23.55-pc-linux-i686.tar.gz

    $ln -s mysql.3.23.55-pc mysql

    $cd mysql

    $scripts/mysql_install_db

    $chown -R root .

    $chown -R mysql data

    $chgrp -R mysql .

    $bin/safe_mysqld --user=mysql & 

    下面运行一个MySQL会话:

    $./mysql -utest

    Welcome to the MySQL monitor. Commands end with ; or \g.

    Your MySQL connection id is 1 to server version: 3.23.55

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

    这说明MySQL已经成功安装,现在输入:

    mysql> select version();

    +-----------+

    | version() |

    +-----------+

    | 3.23.55   |

    +-----------+

    1 row in set (0.01 sec) 

    使用命令“\s”来查看一些基本信息:

    mysql> \s

    --------------

    ./mysql  Ver 11.18 Distrib 3.23.55, for pc-linux (i686)

    Connection id:          4

    Current database:

    Current user:           test@localhost

    Current pager:          stdout

    Using outfile:          ''

    Server version:         3.23.55

    Protocol version:       10

    Connection:             Localhost via UNIX socket

    Client characterset:    latin1

    Server characterset:    latin1

    UNIX socket:            /tmp/mysql.sock

    Uptime:                 6 min 57 sec

    Threads: 1  Questions: 6  Slow queries: 0  Opens: 6  Flush tables:

    1  Open tables: 0 Queries per second avg: 0.014 

    为了实现我们的目的,需要安装另外三个软件包。和MySQL不同的是,这三个软件都是以RPM的格式给出的。切换至软件包所在的目录,运行以下命令:

    [root@myserver odbc]#su

    [root@myserver odbc]# rpm -Uvh MySQL-client-3.23.55-1.i386.rpm

    Preparing...          ########################################### [100%]

    1:MySQL-client     ########################################### [100%]

    [root@myserver odbc]# rpm -Uvh MySQL-shared-3.23.55-1.i386.rpm

    Preparing...          ########################################### [100%]

    1:MySQL-shared     ########################################### [100%]

    [root@myserver odbc]# rpm -Uvh MyODBC-2.50.39-1.i386.rpm

    Preparing...          ########################################### [100%]

    1:MyODBC           ########################################### [100%]



    这些软件包的安装一般都不会有什么问题。下面来安装unixODBC。在我写本文时最新的unixODBC是2.2.5版,提供下载的文件是unixODBC-2.2.5.tar.gz。切换至软件包所在目录,运行以下命令:

    tar xzf unixODBC-2.2.5.tar.gz

    切换至unixODBC-2.2.5目录,运行下述命令:

    su

    ./configure

    make

    make install

    但是,这个安装过程并不顺利,出现了一些问题。首先是一些库文件的位置问题,这两个库文件是libodbcmyS.so和libmyodbc.so,它们一般位于/usr/local/lib目录之下。而在安装过程中,odbcinst.ini配置文件中指示这两个文件的位置却在usr/lib目录之下。所以需要对/etc/odbcinst.ini文件进行一些编辑。编辑完成后,我的odbcinst.ini文件内容如下所示:

    [MySQL]

    Description   = ODBC Driver for MySQL

    Driver   = /usr/local/lib/libmyodbc.so

    Setup   = /usr/local/lib/libodbcmyS.so

    FileUsate   = 1

    CPTimeout   =

    CPReuse    = 

    然后再创建一个/etc/odbc.ini文件,内容如下所示:

    Description   = MySQL database test

    Driver  = MySQL

    Server  = localhost

    Database   = test

    Port   = 3306

    Socket   =

    Option   =

    Stmt    =

    [MySQL-test]

    但是,当我按照手册完成这个文件时,发现原来unixODBC已经建好了这个文件,不过它不在/etc目录之下,而是在/usr/local/etc目录下。于是我把上述两个编辑好的文件拷贝至该目录中。

    此外,安装库unixODBC时还需要KDE软件开发工具包(其中已经包含了Qt)和X软件开发工具包,否则安装过程将无法进行下去。如果没有安装该软件包,那么可以选择:开始选单→系统工具→软件包。这时就会启动Red Hat软件包管理工具,选中上述两项内容(如图1所示),点击确定进行安装。

     

    3.进行测试

    首先看一看ODBC和MySQL是否可以正确沟通。我使用isql MySQL-test -v命令来进行测试,结果出现了“Could not SQLConnect”的错误信息。因为我使用了显示详细信息的-v选项,因此系统提示无法找到/var/lib/mysql/mysql.sock的信息。后来我发现MySQL是把mysql.sock文件存储在了/tmp目录下,而ODBC则是在/var/lib/mysql目录下查找该文件,难怪它们不能顺利沟通。

    现在以root身份来创建一个/var/lib/mysql目录,随后运行以下命令:

    chown -R mysql.mysql /var/lib/mysql 

    然后重新启动mysqld,并且指明了用户名和socket的位置,命令如下所示:

    bin/safe_mysqld --user=mysql --socket=/var/lib/mysql/mysql.sock & 

    再测试一遍,结果一切正常。现在可以进行以下测试了:

    / isql MySQL-test -v

    +---------------------------------------+

    | Connected!            |

    | |

    | sql-statement |

    | help [tablename] |

    | quit |

    | |

    +---------------------------------------+

    SQL> select version();

    +----------+

    | version()|

    +----------+

    | 3.23.55 |

    +----------+

    1 rows affected

    1 rows returned 

    经过前面不断地失败,我都不赶相信软件用户手册了。接着,启动OpenOffice Writer,然后选择工具→数据源。这时,又一个错误出现,OpenOffice显示说无法找到libodbc.so。我把libodbc.so从/usr/local/lib拷贝到/usr/lib后,


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多