一年前,我成为了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.tarmysql-client-3.23.55-1.i386mysql-shared-3.23.55-1.i386myodbc-2.50.39-1.i386unixodbc-2.2.4.tar |
http://mirrors.sunsite.dk/mysql/downloads/mysql-3.23/http://mysql.azc.uam.mx/downloads/myodbc/http://www.unixodbc.org |
rpm -qa | grep -i mysqlrpm -e (发现的所有软件包) updatedbrpm -qa | grep -i odbcrpm -e (所有发现的软件包) |
$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 -utestwelcome to the mysql monitor. commands end with ; or /g. your mysql connection id is 1 to server version: 3.23.55type 'help;' or '/h' for help. type '/c' to clear the buffer. |
mysql> select version();+-----------+| version() |+-----------+| 3.23.55 |+-----------+1 row in set (0.01 sec) |
mysql> /s--------------./mysql ver 11.18 distrib 3.23.55, for pc-linux (i686)connection id: 4current database:current user: [email protected] pager: stdoutusing outfile: ''server version: 3.23.55protocol version: 10connection: localhost via unix socketclient characterset: latin1server characterset: latin1unix socket: /tmp/mysql.sockuptime: 6 min 57 secthreads: 1 questions: 6 slow queries: 0 opens: 6 flush tables: 1 open tables: 0 queries per second avg: 0.014 |
[[email protected] odbc]#su[[email protected] odbc]# rpm -uvh mysql-client-3.23.55-1.i386.rpmpreparing... ########################################### [100%] 1:mysql-client ########################################### [100%][[email protected] odbc]# rpm -uvh mysql-shared-3.23.55-1.i386.rpmpreparing... ########################################### [100%] 1:mysql-shared ########################################### [100%][[email protected] odbc]# rpm -uvh myodbc-2.50.39-1.i386.rpmpreparing... ########################################### [100%] 1:myodbc ########################################### [100%] |
tar xzf unixodbc-2.2.5.tar.gz |
su./configuremakemake install |
[mysql]description = odbc driver for mysqldriver = /usr/local/lib/libmyodbc.sosetup = /usr/local/lib/libodbcmys.sofileusate = 1cptimeout =cpreuse = |
description = mysql database testdriver = mysqlserver = localhostdatabase = testport = 3306socket = option =stmt = |
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 |
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 affected1 rows returned |
虽然已经成功,但是我还是不觉得轻松,毕竟这个方法过于复杂。于是,我开始寻求更简单的解决办法。工夫不负有心人,最后,我终于找到了解决的办法,也就是我将要给大家介绍的方法二。 安装配置方法二 这种方法的基本思想是,通过rhn让red hat自己进行软件更新和依赖性的检查,至于如何设置rhn,请参考本刊2003年第1期“使用rhn让red hat linux自动更新”的文章。 在red hat 8.0中,安装的步骤如下: 第一步 up2date mysql mysql-server and mysql-devel 如果网速足够快,那么这个步骤也不会花太多的时间。在我的机器上,这个过程只花费了4分钟,如图3所示。
第二步 /usr/bin/mysql_install_db 第三步 chown -r mysql.mysql /var/lib/mysql 第四步 chmod -r 666 /var/lib/mysql 第五步 /usr/bin/safe_mysqld-u mysql & 第六步 up2date unixodbc unixodbc-devel 第七步 up2date --src myodbc 第八步 rpmbuild --rebuild /var/spool/up2date/myodbc-2.50.39-7.src.rpm 第九步 rpm -uvh --force /usr/src/redhat/rpms/i386/myodbc-2.50.39-7.i386.rpm 第十步 参照方法一编辑/etc/odbc.ini和/etc/odbcinst.ini 但是不知是什么原因,每次当我使用up2date列表中的软件包时都有一些问题。也许是某一次的安装过程中,我没有清理好系统,或者是当目录树下有如此多的软件包时,up2date无法正确应对。不管怎么说,我还是正确完成了安装。 小结 现在再来做另外一件事情,就是从刚建立的表中提取内容,并且打印地址标签。完成这个步骤花费了我大量的时间。按照帮助系统的指示,我大概了解了配置的过程,但是最后没有成功。并且,这个配置过程非常的不直观,更何况有的步骤根本就无法正常工作。 为此,我在网上进行了大量检索,并且分别到openoffice.org和mysql的论坛中进行了提问,但问题都没有得到解决。功夫不负有心人,最后我终于获知原来出错的原因居然是openoffice.org的帮助系统文件档有一些错误。我终于找到了可以让它正常工作的方法。 当我第一次尝试打印地址标签时,mysql提示出错信息:“too many connections.”,原来页面中的每一个标签都需要一个自己的连接。于是,我做了两件事情来解决这个问题。首先,把下面这些加入到了/etc/my.cnf的mysql章节中: set-variable = max_connections=200 |
新闻热点
疑难解答