old-www/HOWTO/MMBase-Inst-HOWTO/x572.html

598 lines
8.9 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>&#13;Connecting MMBase
to MySQL
using MySQL Connector/J
</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="
MMBase Installation HOWTO
"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Installing MMBase"
HREF="x502.html"><LINK
REL="NEXT"
TITLE="
Installing MMBase
additional applications
"
HREF="x634.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
><SPAN
CLASS="application"
>MMBase</SPAN
> Installation HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x502.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x634.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN572"
></A
>8. Connecting <SPAN
CLASS="application"
>MMBase</SPAN
>
to <SPAN
CLASS="application"
>MySQL</SPAN
>
using <SPAN
CLASS="systemitem"
>MySQL Connector/J</SPAN
></H1
><P
>&#13;We can connect
<SPAN
CLASS="application"
>MMBase</SPAN
>
to our <SPAN
CLASS="application"
>MySQL</SPAN
> database server
using <SPAN
CLASS="systemitem"
>MySQL Connector/J</SPAN
>.
This <SPAN
CLASS="acronym"
>JDBC</SPAN
> driver
for <SPAN
CLASS="application"
>MySQL</SPAN
>
can be downloaded from:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13; <A
HREF="http://www.mysql.com/downloads/api-jdbc.html"
TARGET="_top"
>http://www.mysql.com/downloads/api-jdbc.html</A
>
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;Copy the <SPAN
CLASS="acronym"
>JDBC</SPAN
> driver
to the <SPAN
CLASS="application"
>MMBase</SPAN
>
<TT
CLASS="filename"
>lib/</TT
> directory:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
cp mysql-connector-java-xxx-bin.jar /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/
chown tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/mysql-connector-java-xxx-bin.jar
chmod 664 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/mysql-connector-java-xxx-bin.jar
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;Make this your <SPAN
CLASS="acronym"
>JDBC</SPAN
> driver
for <SPAN
CLASS="application"
>MMBase</SPAN
>
by editing
<TT
CLASS="filename"
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml</TT
>.
Substitute the database name
(<TT
CLASS="replaceable"
><I
>mmbase</I
></TT
>),
user (<TT
CLASS="replaceable"
><I
>mmuser</I
></TT
>)
and password (<TT
CLASS="replaceable"
><I
>mmpass</I
></TT
>)
with the database settings you'd like
<SPAN
CLASS="application"
>MMBase</SPAN
> to use.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
&#60;property name="url"&#62;jdbc:mysql://$HOST:$PORT/$DBM&#60;/property&#62;
&#60;property name="user"&#62;mmuser&#60;/property&#62;
&#60;property name="password"&#62;mmpass&#60;/property&#62;
&#60;property name="supportclass"&#62;org.mmbase.module.database.DatabaseSupportShim&#60;/property&#62;
&#60;property name="database"&#62;mmbase&#60;/property&#62;
&#60;property name="connections"&#62;20&#60;/property&#62;
&#60;property name="host"&#62;localhost&#60;/property&#62;
&#60;property name="driver"&#62;com.mysql.jdbc.Driver&#60;/property&#62;
&#60;property name="port"&#62;3306&#60;/property&#62;
&#60;property name="querys"&#62;256&#60;/property&#62;
&#60;property name="probetime"&#62;30&#60;/property&#62;
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;Set the ownership and access rights of this configuration file.
Since it contains your database name, user name and password,
make sure other users can not read this file.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
chown tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml
chmod 640 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;Now create the <SPAN
CLASS="application"
>MySQL</SPAN
> database
you've just defined for
<SPAN
CLASS="application"
>MMBase</SPAN
>:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
mysql -u root -p
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
CREATE DATABASE &#60;mmbase&#62;;
USE &#60;mmbase&#62;;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON &#60;mmbase&#62;.* TO
&#60;mmuser&#62;@'%' IDENTIFIED BY '&#60;password&#62;';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON &#60;mmbase&#62;.* TO
&#60;mmuser&#62;@localhost IDENTIFIED BY '&#60;password&#62;';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON &#60;mmbase&#62;.* TO
&#60;mmuser&#62;@localhost.&#60;domainname&#62; IDENTIFIED BY '&#60;password&#62;';
# RH bug fix
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON &#60;mmbase&#62;.* TO
&#60;mmuser&#62;@&#60;hostname&#62; IDENTIFIED BY '&#60;password&#62;';
flush privileges;
exit;
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;Substitute the hostname (<TT
CLASS="replaceable"
><I
>&#60;hostname&#62;</I
></TT
>)
and domain name (<TT
CLASS="replaceable"
><I
>&#60;domainname&#62;</I
></TT
>)
with your own hostname and domain name,
and the database name (<TT
CLASS="replaceable"
><I
>&#60;mmbase&#62;</I
></TT
>),
user (<TT
CLASS="replaceable"
><I
>&#60;mmuser&#62;</I
></TT
>)
and password (<TT
CLASS="replaceable"
><I
>&#60;password&#62;</I
></TT
>)
with the values you just entered in the JDBC driver configuration file.
</P
><P
>&#13;<DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;To quickly empty
your <SPAN
CLASS="application"
>MySQL</SPAN
> database,
i.e. after you've updated
your <SPAN
CLASS="application"
>MMBase</SPAN
> configuration or
application
(replace the database name <TT
CLASS="replaceable"
><I
>&#60;mmbase&#62;</I
></TT
> with your
own):
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
mysqladmin -u root -p drop &#60;mmbase&#62;
mysqladmin -u root -p create &#60;mmbase&#62;
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
></TD
></TR
></TABLE
></DIV
>
</P
><P
>&#13;<DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;If you are already using quite some
<SPAN
CLASS="application"
>MySQL</SPAN
> connections
(for example for authentication by and as a back-end to your mail daemons
and <SPAN
CLASS="application"
>Apache</SPAN
> servers),
the <SPAN
CLASS="application"
>MySQL</SPAN
> server
might run out of connections (its maximum number defaults to 100).
Then <SPAN
CLASS="application"
>Tomcat</SPAN
>
could simply refuse to start or give an error message
when initiating the
<SPAN
CLASS="application"
>MySQL</SPAN
> connection pool,
or your <SPAN
CLASS="application"
>IMAP</SPAN
>
or <SPAN
CLASS="application"
>POP</SPAN
> servers will have
problems authenticating their clients.
</P
><P
>&#13;You can increase the maximum number of connections
to <SPAN
CLASS="application"
>MySQL</SPAN
>
by adding to the configuration file
<TT
CLASS="filename"
>/etc/my.cnf</TT
>:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
[mysqld]
set-variable = max_connections=200
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
></TD
></TR
></TABLE
></DIV
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x502.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x634.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installing <SPAN
CLASS="application"
>MMBase</SPAN
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing <SPAN
CLASS="application"
>MMBase</SPAN
>
additional applications</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>