国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來,internet一定要實(shí)現(xiàn)!

讓MySQL與OpenOffice共舞

2004-02-11 eNet&Ciweek

  一年前,我成為了Linux用戶的一員,但是多年使用Windows,讓我覺得Linux有的工具使用不很習(xí)慣。就拿數(shù)據(jù)庫來說,在Windows下,開發(fā)一些數(shù)據(jù)庫驅(qū)動的網(wǎng)站或者小型管理系統(tǒng)時(shí)可以選擇使用Access。Access不僅易于使用,而且非常方便。轉(zhuǎn)到Linux上后,做同樣事情時(shí)發(fā)現(xiàn)MySQL是一個(gè)不錯(cuò)的選擇,但其沒有圖形界面,使用起來不是很方便,于是希望能夠找到解決的方案。經(jīng)過一段時(shí)間的探尋,終于找到了解決辦法,即把MySQL和OpenOffice結(jié)合使用。根據(jù)資料顯示,實(shí)現(xiàn)MySQL和OpenOffice協(xié)同工作的方法有很多種,不過大都過于復(fù)雜,難于實(shí)現(xiàn)。在此我介紹兩種安裝和配置過程。

  我使用的操作系統(tǒng)是Red Hat 8.0,同樣的方法用于其它的發(fā)行版可能稍有不同。在安裝配置過程中,需要MySQL和unixODBC軟件包(OpenOffice缺省情況下已經(jīng)安裝好了)。這些軟件包在Red Hat 8.0的光盤中都已經(jīng)自帶,但在我的測試中,使用安裝盤的方法似乎無法成功。

  安裝配置方法一

  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

    

  這些軟件包可分別可從以下站點(diǎn):   

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

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

  http://www.unixodbc.org  

  上面所列的是我感覺速度比較快的站點(diǎn),事實(shí)上在很多鏡像站點(diǎn)都可以到這些軟件包。

  2.安裝軟件

  使用以下命令(以root身份)來查看以前是否安裝過:   

  rpm -qa   grep -i mysql

  rpm -e (發(fā)現(xiàn)的所有軟件包)

  updatedb

  rpm -qa   grep -i odbc

  rpm -e (所有發(fā)現(xiàn)的軟件包)  

  切換至的軟件包所在的目錄,以root用戶的身份執(zhí)行以下命令:  

  $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 &  

  下面運(yùn)行一個(gè)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已經(jīng)成功安裝,現(xiàn)在輸入:   

  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 

  為了實(shí)現(xiàn)我們的目的,需要安裝另外三個(gè)軟件包。和MySQL不同的是,這三個(gè)軟件都是以RPM的格式給出的。切換至軟件包所在的目錄,運(yùn)行以下命令:   

  [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。在我寫本文時(shí)最新的unixODBC是2.2.5版,提供的文件是unixODBC-2.2.5.tar.gz。切換至軟件包所在目錄,運(yùn)行以下命令:

  tar xzf unixODBC-2.2.5.tar.gz  

  切換至unixODBC-2.2.5目錄,運(yùn)行下述命令:  

  su

  ./configure

  make

  make install  

  但是,這個(gè)安裝過程并不順利,出現(xiàn)了一些問題。首先是一些庫文件的位置問題,這兩個(gè)庫文件是libodbcmyS.so和libmyodbc.so,它們一般位于/usr/local/lib目錄之下。而在安裝過程中,odbcinst.ini配置文件中指示這兩個(gè)文件的位置卻在usr/lib目錄之下。所以需要對/etc/odbcinst.ini文件進(jìn)行一些編輯。編輯完成后,我的odbcinst.ini文件內(nèi)容如下所示:

    

  [MySQL]

  Description = ODBC Driver for MySQL

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

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

  FileUsate = 1

  CPTimeout =

  CPReuse =  

  然后再創(chuàng)建一個(gè)/etc/odbc.ini文件,內(nèi)容如下所示:   

  Description = MySQL database test

  Driver = MySQL

  Server = localhost

  Database = test

  Port = 3306

  Socket =

  Option =

  Stmt =

  [MySQL-test]

  但是,當(dāng)我按照手冊完成這個(gè)文件時(shí),發(fā)現(xiàn)原來unixODBC已經(jīng)建好了這個(gè)文件,不過它不在/etc目錄之下,而是在/usr/local/etc目錄下。于是我把上述兩個(gè)編輯好的文件拷貝至該目錄中。

  此外,安裝庫unixODBC時(shí)還需要KDE軟件開發(fā)工具包(其中已經(jīng)包含了Qt)和X軟件開發(fā)工具包,否則安裝過程將無法進(jìn)行下去。如果沒有安裝該軟件包,那么可以選擇:開始選單→系統(tǒng)工具→軟件包。這時(shí)就會啟動Red Hat軟件包管理工具,選中上述兩項(xiàng)內(nèi)容(如圖1所示),點(diǎn)擊確定進(jìn)行安裝。(未完)
  
圖1形卡></center>
<br/>
<br/>  3.進(jìn)行測試 
<br/>
<br/>  首先看一看ODBC和MySQL是否可以正確溝通。我使用isql MySQL-test -v命令來進(jìn)行測試,結(jié)果出現(xiàn)了“Could not SQLConnect”的錯(cuò)誤信息。因?yàn)槲沂褂昧孙@示詳細(xì)信息的-v選項(xiàng),因此系統(tǒng)提示無法找到/var/lib/mysql/mysql.sock的信息。后來我發(fā)現(xiàn)MySQL是把mysql.sock文件存儲在了/tmp目錄下,而ODBC則是在/var/lib/mysql目錄下查找該文件,難怪它們不能順利溝通。 
<br/>
<br/>  現(xiàn)在以root身份來創(chuàng)建一個(gè)/var/lib/mysql目錄,隨后運(yùn)行以下命令:   
<br/>
<br/>  chown -R mysql.mysql /var/lib/mysql  
<br/>
<br/>  然后重新啟動mysqld,并且指明了用戶名和socket的位置,命令如下所示:   
<br/>
<br/>  bin/safe_mysqld --user=mysql --socket=/var/lib/mysql/mysql.sock &  
<br/>
<br/>  再測試一遍,結(jié)果一切正?!,F(xiàn)在可以進(jìn)行以下測試了:   
<br/>
<br/>  / isql MySQL-test -v
<br/>
<br/>  +---------------------------------------+
<br/>
<br/>    Connected!             
<br/>
<br/>   	  
<br/>
<br/>    sql-statement	 
<br/>
<br/>    help [tablename]	 
<br/>
<br/>    quit	 
<br/>
<br/>   	 
<br/>
<br/>  +---------------------------------------+
<br/>
<br/>  SQL> select version();
<br/>
<br/>  +----------+
<br/>
<br/>    version() 
<br/>
<br/>  +----------+
<br/>
<br/>    3.23.55  
<br/>
<br/>  +----------+
<br/>
<br/>  1 rows affected
<br/>
<br/>  1 rows returned
<br/>
<br/>  經(jīng)過前面不斷地失敗,我都不敢相信軟件用戶手冊了。接著,啟動OpenOffice Writer,然后選擇工具→數(shù)據(jù)源。這時(shí),又一個(gè)錯(cuò)誤出現(xiàn),OpenOffice顯示說無法找到libodbc.so。我把libodbc.so從/usr/local/lib拷貝到/usr/lib后,問題就解決了。于是,一切都正常了。圖2是OpenOffice的表設(shè)計(jì)窗口,在這個(gè)窗口中,我很容易就完成了一個(gè)表的設(shè)計(jì),真是太棒了。   
<br/>
<br/>   <center><img src=http://myarticle.enet.com.cn/images/200402/1076471780783.gif   border=0 alt=


  雖然已經(jīng)成功,但是我還是不覺得輕松,畢竟這個(gè)方法過于復(fù)雜。于是,我開始尋求更簡單的解決辦法。工夫不負(fù)有心人,最后,我終于找到了解決的辦法,也就是我將要給大家介紹的方法二。

  安裝配置方法二

  這種方法的基本思想是,通過RHN讓Red Hat自己進(jìn)行軟件更新和依賴性的檢查,至于如何設(shè)置RHN,請參考本刊2003年第1期“使用RHN讓Red Hat Linux自動更新”的文章。

  在Red Hat 8.0中,安裝的步驟如下:

  第一步 up2date mysql mysql-server and mysql-devel

  如果網(wǎng)速足夠快,那么這個(gè)步驟也不會花太多的時(shí)間。

  第二步 /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

  但是不知是什么原因,每次當(dāng)我使用up2date列表中的軟件包時(shí)都有一些問題。也許是某一次的安裝過程中,我沒有清理好系統(tǒng),或者是當(dāng)目錄樹下有如此多的軟件包時(shí),up2date無法正確應(yīng)對。不管怎么說,我還是正確完成了安裝。

  小結(jié)

  現(xiàn)在再來做另外一件事情,就是從剛建立的表中提取內(nèi)容,并且打印地址標(biāo)簽。完成這個(gè)步驟花費(fèi)了我大量的時(shí)間。按照幫助系統(tǒng)的指示,我大概了解了配置的過程,但是最后沒有成功。并且,這個(gè)配置過程非常的不直觀,更何況有的步驟根本就無法正常工作。

  為此,我在網(wǎng)上進(jìn)行了大量檢索,并且分別到OpenOffice.org和MySQL的論壇中進(jìn)行了提問,但問題都沒有得到解決。功夫不負(fù)有心人,最后我終于獲知原來出錯(cuò)的原因居然是OpenOffice.org的幫助系統(tǒng)文件檔有一些錯(cuò)誤。我終于找到了可以讓它正常工作的方法。

  當(dāng)我第一次嘗試打印地址標(biāo)簽時(shí),MySQL提示出錯(cuò)信息:“Too many connections.”,原來頁面中的每一個(gè)標(biāo)簽都需要一個(gè)自己的連接。于是,我做了兩件事情來解決這個(gè)問題。首先,把下面這些加入到了/etc/my.cnf的MySQL章節(jié)中:  

  set-variable = max_connections=200  

  中止了正在運(yùn)行的進(jìn)程之后,在重新啟動之前執(zhí)行了su mysql。我在網(wǎng)上看到有一個(gè)MySQL開發(fā)人員建議,如果不以root身份來啟動mysqld的話可以解決“Too many connection”的問題。于是我以MySQL的身份重新啟動了mysql,并且在命令行中加入了一個(gè)用戶參數(shù)。這樣改變以后,數(shù)據(jù)庫的訪問就正常了。當(dāng)然,到底哪一個(gè)方法有效還要經(jīng)過一些實(shí)驗(yàn)。

  整個(gè)使用過程中,我的感覺是OpenOffice.org要遠(yuǎn)比我想象的復(fù)雜和強(qiáng)大得多,它可以和各種數(shù)據(jù)庫管理系統(tǒng)一起工作。如果你的SOHO辦公環(huán)境需要數(shù)據(jù)庫訪問和操作,那么我建議不要馬上切換至OpenOffice.org,而是先對其進(jìn)行測試,看一看其是否可以滿足你的需求。需要指出的是,任何軟件無論是代碼還是文檔,都會有一些錯(cuò)誤,所以不要對使用過程中出現(xiàn)的一些問題大加抱怨,應(yīng)該以更積極的態(tài)度來發(fā)現(xiàn)和解決問題。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com