8. 使用 MySQL Connector/J 连接 MMBaseMySQL

我们可以使用 MySQL Connector/J 连接 MMBase 到我们的 MySQL 数据库服务器。这个用于 MySQLJDBC 驱动程序可以从以下地址下载

  https://mysqlserver.cn/downloads/api-jdbc.html

复制 JDBC 驱动程序到 MMBaselib/目录

  
  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
  
  

通过编辑以下文件,将其设置为您的 MMBaseJDBC 驱动程序/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml. 替换数据库名称 (mmbase), 用户名 (mmuser) 和密码 (mmpass) 为您希望 MMBase 使用的数据库设置。

  
  <property name="url">jdbc:mysql://$HOST:$PORT/$DBM</property>
  <property name="user">mmuser</property>
  <property name="password">mmpass</property>
  <property name="supportclass">org.mmbase.module.database.DatabaseSupportShim</property>
  <property name="database">mmbase</property>
  <property name="connections">20</property>
  <property name="host">localhost</property>
  <property name="driver">com.mysql.jdbc.Driver</property>
  <property name="port">3306</property>
  <property name="querys">256</property>
  <property name="probetime">30</property>
  
  

设置此配置文件的所有权和访问权限。因为它包含您的数据库名称、用户名和密码,请确保其他用户无法读取此文件。

  
  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
  
  

现在为您刚刚为 MMBase 定义的 MySQL 数据库创建数据库

  
  mysql -u root -p
  
  

  
  CREATE DATABASE <mmbase>;
  USE <mmbase>;
  GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
      <mmuser>@'%' IDENTIFIED BY '<password>';
  GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
      <mmuser>@localhost IDENTIFIED BY '<password>';
  GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
      <mmuser>@localhost.<domainname> IDENTIFIED BY '<password>';
    # RH bug fix
  GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
      <mmuser>@<hostname> IDENTIFIED BY '<password>';
  flush privileges;
  exit;
  
  

替换主机名 (<hostname>) 和域名 (<domainname>) 为您自己的主机名和域名,以及数据库名称 (<mmbase>), 用户名 (<mmuser>) 和密码 (<password>) 为您刚刚在 JDBC 驱动程序配置文件中输入的值。

Tip

要快速清空您的 MySQL 数据库,例如在您更新了 MMBase 配置或应用程序之后(替换数据库名称<mmbase>为您自己的数据库名称)

  
  mysqladmin -u root -p drop <mmbase>
  mysqladmin -u root -p create <mmbase>
  
  

Tip

如果您已经使用了相当多的 MySQL 连接(例如用于通过邮件守护程序和 Apache 服务器进行身份验证并作为它们的后端),MySQL 服务器可能会耗尽连接(其最大连接数默认为 100)。然后,Tomcat 可能直接拒绝启动或在初始化 MySQL 连接池时给出错误消息,或者您的 IMAPPOP 服务器将无法验证其客户端。

您可以通过添加到配置文件来增加到 MySQL 的最大连接数/etc/my.cnf:

  
  [mysqld]
  set-variable = max_connections=200