ocaml-mysql
                                
                                 ocaml-mysql copied to clipboard
                                
                                    ocaml-mysql copied to clipboard
                            
                            
                            
                        OCaml bindings to libmysqlclient
                 OCaml-MySQL -- MySQL access for OCaml
                 *************************************
                http://ocaml-mysql.forge.ocamlcore.org/
                =======================================
                         Based on a release by:
                              Shawn Wagner
                          [email protected]
              http://raevnos.pennmush.org/code/ocaml-mysql
              ============================================
                         Based on a release by:
                            Christian Lindig
                        [email protected]
                  http://www.eecs.harvard.edu/~lindig
                  ===================================
ocaml-mysql is a package for OCaml that provides access to mysql databases. It consists of low-level C bindings to libmysqlclient and a module Mysql intended for application development.
1 Building =====
Compiling this package from sources requires the following software to be installed on your system:
- ocaml 3.09 or above.
- findlib
- The mysql client library and header files.
- An ANSI C compiler like gcc.
A configure script is provided which should help to find the particular files. In case configure fails, edit the setting in the config file directly. This also applies when the C compiler fails to find some include file. However, you should first try the obvious:
          <<
                % ./configure
                % make
                % make opt
                % make install
          >>
This creates the mysql libraries.
1' Building on windows ===========
Compiling this package from sources requires the following software to be installed on your system:
- ocaml 3.11 or above with accompanying C compiler setup (msvc or mingw)
- findlib
- MySQL Connector/C http://dev.mysql.com/downloads/connector/c/
- GNU Make
ocaml/msvc :
Copy Makefile.msvc to Makefile and edit MYSQL_DIR variable to point to the root
of installed MySQL Connector/C distribution. Afterwards run make to build mysql library,
make demos to compile examples and make install to install with ocamlfind.
ocaml/mingw:
Some mingw reimp versions can't process libmysql.lib import library. In such cases try to rename this file into "$M/lib/libmysql.a" without any processing by reimp.
$ export P="c:/Program Files/MySQL/MySQL Connector C 6.0.2" $ export M="c:/mingw" $ cp "$P/lib/opt/libmysql.lib" "$M/lib/" $ (cd "$M/lib" && reimp libmysql.lib && mv liblibmysql.a libmysql.a) $ CPPFLAGS="-I$P/include" ./configure $ make all opt demos
2 Troubleshooting ========*=
If compilation fails this is most probably because include or library files were not found. The configure looks in a number of places but may fail to find the files on your system. In case you have GNU Autoconf installed you can take a look at the configure.in and add more directories to search:
          <<
            AC_CHECKING(for MySQL header files)
            dnl
            dirs="/usr/local/include
                  /usr/local/mysql/include
                  /usr/include
                  /usr/include/mysql"
          >>
Do not forget to create a new configure script by invoking autoconf. Please send a patch back to the author.
- Documentation ========
Check the interface files, or doc/mysql/html/index.html (generated with make htdoc).
Reading the mysql documentation should help, too.
Two small demos are available. Build them with make demos.
Note: The library can be used in multithreaded ocaml programs without blocking threads during i/o with the database server. Since MySQL 5.5 it is safe to share database handle between threads in most scenarios, see http://dev.mysql.com/doc/refman/5.5/en/c-api-threaded-clients.html
4 Copying ====*=
You are encouraged to distribute this code under the terms of the Lesser GNU Public License. See the file COPYING for details.
- Authors ====*=
Previous maintainers: Christian Lindig Shawn Wagner
Current maintainer: ygrek [email protected]