https://github.com/ygrek/ocaml-mysql
OCaml bindings to libmysqlclient
https://github.com/ygrek/ocaml-mysql
Last synced: about 2 months ago
JSON representation
OCaml bindings to libmysqlclient
- Host: GitHub
- URL: https://github.com/ygrek/ocaml-mysql
- Owner: ygrek
- License: lgpl-2.1
- Created: 2014-10-05T14:50:54.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-09-26T19:53:18.000Z (over 1 year ago)
- Last Synced: 2025-04-15T14:13:19.457Z (about 2 months ago)
- Language: OCaml
- Homepage: https://ygrek.org.ua/p/ocaml-mysql
- Size: 331 KB
- Stars: 24
- Watchers: 5
- Forks: 11
- Open Issues: 10
-
Metadata Files:
- Readme: README
- Changelog: CHANGES
- License: COPYING
Awesome Lists containing this project
README
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:1. ocaml 3.09 or above.
2. findlib
3. The mysql client library and header files.
4. 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:1. ocaml 3.11 or above with accompanying C compiler setup (msvc or mingw)
2. findlib
3. MySQL Connector/C
4. GNU Makeocaml/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 demos2 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.3. 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.html4 Copying
*=*=*=*=*=You are encouraged to distribute this code under the terms of the
Lesser GNU Public License. See the file COPYING for details.5. Authors
*=*=*=*=*=Previous maintainers:
Christian Lindig
Shawn WagnerCurrent maintainer:
ygrek