zoukankan      html  css  js  c++  java
  • 让MySQL与OpenOffice共舞

     根源:网海拾贝  




    一年前,我成为了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后,了局就解决了。于是,完备绝对都正常了。图2是OpenOffice的表设计窗口,在这个窗口中,我很随意就完成了一个表的设计,真是太棒了。 



      虽然曾经乐成,可是我照旧不觉得轻松,真相后果这个方法过于庞大。于是,我末端追求更复杂的解决举措。工夫不负有意人,最初,我终于找到了处理的举措,也便是我将要给大家引见的方法二。

      安置设置方法二

      这种方法的根本思惟是,颠末议定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



      中断了正在运转的进程之后,在从头启动之前实行了su mysql。我在网上看到有一个MySQL启示职员建议,假如不以root身份来启动mysqld的话可以解决“Too many connection”的了局。于是我以MySQL的身份从头启动了mysql,而且在下令行中插手了一个用户参数。这样改动以后,数据库的接见会面就正常了。虽然,真相哪一个方法无效还要经由一些测验测验。

      整个运用进程中,我的感受是OpenOffice.org要远比我想象的庞大和壮大得多,它可以和种种数据库操持系分譬喻路事故。假如你的SOHO办公环境需求数据库接见会面和把持,那么我建议不要立时切换至OpenOffice.org,而是先对其阻止测试,看一看其能否可以满意你的需求。需求指出的是,任何软件无论是代码照旧文档,城市有一些错误,以是不要对运用进程中呈现的一些了局大加抱怨,应该以更积极的立场来创造和解决了局。





    版权声明: 原创作品,准许转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。不然将追究执法责任。

  • 相关阅读:
    .netcore ioc 循环依赖问题及其相关思考之DispatchProxy
    通过Dapr实现一个简单的基于.net的微服务电商系统(八)——一步一步教你如何撸Dapr之链路追踪
    通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
    通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流
    通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权
    通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权百度版
    通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理
    通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr
    通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务
    VS 模板制作
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975685.html
Copyright © 2011-2022 走看看