r5 - 23 Feb 2010 - 09:53:34 - PavelGeorgievYou are here: Wiki >  AppLogic27 Web > CatDatabaseAppliancesMYSQL5Cid
ALERT! AppLogic 2.7/2.8 Documentation The latest production release is AppLogic 3.0.30

MYSQL5: MySQL 5.0 Database Appliance - Implementation Design

Base class

Any AppLogic appliance image on CentOS 5 can be used as the base class for MYSQL5. The simplest one to use is LUX5 - although the class volumes need to be resized.

Class volumes

The volume configuration for MYSQL5 is determined by the base class image from which it is created. The setup chosen for the 1.0.0 release is as follows:

  • boot volume, 120MB size, mounted as "/", writeable, instantiable
  • usr volume, 190MB size, mounted as "/usr", read-only, common
The two volumes contain a basic Linux installation as the one present on the LUX5 appliance.

In summary, MYSQL5's boot volume contains:

  • CentOS 5, as base OS image (as installed on the LUX5 appliance)
  • MySQL database engine version 5.0.77, for data storage and query processing
  • Samba client version 3.0.28, for accessing files through the log terminal
  • sshd, used for logging into the component through the default interface

In addition to the class volume, MYSQL requires a user-supplied data volume that is used to store the actual database:

  • data volume, user-defined size, mounted as "/mnt/data", writeable, placeholder

Packages

The following open source packages are installed:

  • audit-libs-1.3.1-1.el5.i386.rpm (LGPL)
  • basesystem-8.0-5.1.1.el5.centos.noarch.rpm (public domain)
  • bash-3.1-16.1.i386.rpm (GPL)
  • beecrypt-4.1.2-10.1.1.i386.rpm (LGPL)
  • bzip2-1.0.3-3.i386.rpm (BSD)
  • bzip2-libs-1.0.3-3.i386.rpm (BSD)
  • centos-release-5-0.0.el5.centos.2.i386.rpm (GPL)
  • centos-release-notes-5.0.0-2.i386.rpm (GPL)
  • chkconfig-1.3.30.1-1.i386.rpm (GPL)
  • coreutils-5.97-12.1.el5.i386.rpm (GPL)
  • cpio-2.6-20.i386.rpm (GPL)
  • cracklib-2.8.9-3.1.i386.rpm (Artistic)
  • cracklib-dicts-2.8.9-3.1.i386.rpm (Artistic)
  • crontabs-1.10-8.noarch.rpm (Public Domain)
  • cyrus-sasl-lib-2.1.22-4.i386.rpm (Freely Distributable)
  • db4-4.3.29-9.fc6.i386.rpm (GPL)
  • device-mapper-1.02.13-1.el5.i386.rpm (GPL)
  • dhclient-3.0.5-7.el5.i386.rpm (distributable)
  • diffutils-2.8.1-15.2.2.i386.rpm (GPL)
  • e2fsprogs-1.39-8.el5.i386.rpm (GPL)
  • e2fsprogs-libs-1.39-8.el5.i386.rpm (GPL)
  • ed-0.2-38.2.2.i386.rpm (GPL)
  • elfutils-libelf-0.125-3.el5.i386.rpm (GPL)
  • ethtool-5-1.el5.i386.rpm (GPL)
  • expat-1.95.8-8.2.1.i386.rpm (BSD)
  • file-4.17-8.2.i386.rpm (distributable)
  • filesystem-2.4.0-1.el5.centos.i386.rpm (Public Domain)
  • findutils-4.2.27-4.1.i386.rpm (GPL)
  • gawk-3.1.5-14.el5.i386.rpm (GPL)
  • gdbm-1.8.0-26.2.1.i386.rpm (GPL)
  • glib2-2.12.3-2.fc6.i386.rpm (LGPL)
  • glibc-2.5-12.2.i386.rpm (LGPL)
  • glibc-common-2.5-12.2.i386.rpm (LGPL)
  • gpg-pubkey-e8562897-459f07a4.(none).rpm (pubkey)
  • grep-2.5.1-54.2.el5.i386.rpm (GPL)
  • gzip-1.3.5-9.el5.centos.i386.rpm (GPL)
  • info-4.8-14.el5.i386.rpm (GPL)
  • initscripts-8.45.14.EL-1.el5.centos.1.i386.rpm (GPL)
  • iproute-2.6.18-4.el5.i386.rpm (GNU GPL)
  • iputils-20020927-43.el5.i386.rpm (BSD)
  • krb5-libs-1.5-23.i386.rpm (MIT, freely distributable.)
  • less-394-5.el5.i386.rpm (GPL)
  • libacl-2.2.39-1.1.i386.rpm (LGPL)
  • libattr-2.4.32-1.1.i386.rpm (LGPL)
  • libcap-1.10-26.i386.rpm (BSD-like and LGPL)
  • libevent-1.1a-3.2.1.i386.rpm (BSD)
  • libgcc-4.1.1-52.el5.2.i386.rpm (GPL)
  • libgssapi-0.10-2.i386.rpm (GPL)
  • libhugetlbfs-1.0.1-1.el5.i386.rpm (LGPL)
  • libhugetlbfs-lib-1.0.1-1.el5.i386.rpm (LGPL)
  • libselinux-1.33.4-2.el5.i386.rpm (Public domain (uncopyrighted))
  • libselinux-python-1.33.4-2.el5.i386.rpm (Public domain (uncopyrighted))
  • libsemanage-1.9.1-3.el5.i386.rpm (GPL)
  • libsepol-1.15.2-1.el5.i386.rpm (GPL)
  • libstdc++-4.1.1-52.el5.i386.rpm (GPL)
  • libsysfs-2.0.0-6.i386.rpm (LGPL)
  • libtermcap-2.0.8-46.1.i386.rpm (LGPL)
  • libuser-0.54.7-2.el5.1.i386.rpm (LGPL)
  • libvolume_id-095-14.5.el5.i386.rpm (GPL)
  • logrotate-3.7.4-8.i386.rpm (GPL)
  • m2crypto-0.16-6.el5.1.i386.rpm (BSDish)
  • MAKEDEV-3.23-1.2.i386.rpm (GPL)
  • mcstrans-0.1.10-1.el5.i386.rpm (GPL)
  • mingetty-1.07-5.2.2.i386.rpm (GPL)
  • mktemp-1.5-23.2.2.i386.rpm (BSD)
  • module-init-tools-3.3-0.pre3.1.16.el5.i386.rpm (GPL)
  • mysql-5.0.77-4.el5_4.1.i386.rpm (GPLv2 with exceptions)
  • mysql-server-5.0.77-4.el5_4.1.i386.rpm (GPLv2 with exceptions)
  • ncurses-5.5-24.20060715.i386.rpm (distributable)
  • net-tools-1.60-73.i386.rpm (GPL)
  • newt-0.52.2-9.i386.rpm (LGPL)
  • nfs-utils-1.0.9-24.el5.i386.rpm (GPL)
  • nfs-utils-lib-1.0.8-7.2.z2.i386.rpm (GPL)
  • openldap-2.3.27-5.i386.rpm (OpenLDAP? )
  • openssh-4.3p2-16.el5.i386.rpm (BSD)
  • openssh-clients-4.3p2-16.el5.i386.rpm (BSD)
  • openssh-server-4.3p2-16.el5.i386.rpm (BSD)
  • openssl-0.9.8b-8.3.el5.i686.rpm (BSDish)
  • pam-0.99.6.2-3.14.el5.i386.rpm (GPL or BSD)
  • passwd-0.73-1.i386.rpm (BSD)
  • patch-2.5.4-29.2.2.i386.rpm (GPL)
  • pcre-6.6-1.1.i386.rpm (BSD)
  • perl-5.8.8-10.i386.rpm (Artistic or GPL)
  • perl-DBD-MySQL-3.0007-2.el5.i386.rpm (GPL or Artistic)
  • perl-DBI-1.52-2.el5.i386.rpm (GPL or Artistic)
  • popt-1.10.2-37.el5.i386.rpm (GPL)
  • portmap-4.0-65.2.2.1.i386.rpm (BSD)
  • procps-3.2.7-8.1.el5.i386.rpm (GPL)
  • psmisc-22.2-5.i386.rpm (BSD/GPL)
  • python-2.4.3-19.el5.i386.rpm (PSF - see LICENSE)
  • python-elementtree-1.2.6-5.i386.rpm (PSF)
  • python-sqlite-1.1.7-1.2.1.i386.rpm (GPL)
  • python-urlgrabber-3.1.0-2.noarch.rpm (LGPL)
  • readline-5.1-1.1.i386.rpm (GPL)
  • rpm-4.4.2-37.el5.i386.rpm (GPL)
  • rpm-libs-4.4.2-37.el5.i386.rpm (GPL)
  • rpm-python-4.4.2-37.el5.i386.rpm (GPL)
  • samba-client-3.0.28-1.el5_2.1.i386.rpm (GNU GPL Version 2)
  • samba-common-3.0.28-1.el5_2.1.i386.rpm (GNU GPL Version 2)
  • sed-4.1.5-5.fc6.i386.rpm (GPL)
  • setup-2.5.58-1.el5.noarch.rpm (public domain)
  • shadow-utils-4.0.17-12.el5.i386.rpm (BSD)
  • slang-2.0.6-4.el5.i386.rpm (GPL)
  • sqlite-3.3.6-2.i386.rpm (Public Domain)
  • sysfsutils-2.0.0-6.i386.rpm (GPL)
  • sysklogd-1.4.1-39.2.i386.rpm (GPL)
  • SysVinit-2.86-14.i386.rpm (GPL)
  • tar-1.15.1-23.el5.i386.rpm (GPL)
  • tcpdump-3.9.4-11.el5.i386.rpm (BSD)
  • tcp_wrappers-7.6-40.2.1.i386.rpm (Distributable)
  • termcap-5.5-1.20060701.1.noarch.rpm (Public Domain)
  • tmpwatch-2.9.7-1.1.el5.1.i386.rpm (GPL)
  • tzdata-2006m-2.fc6.noarch.rpm (GPL)
  • udev-095-14.5.el5.i386.rpm (GPL)
  • usermode-1.88-3.el5.i386.rpm (GPL)
  • util-linux-2.13-0.44.el5.i386.rpm (distributable)
  • vim-minimal-7.0.109-3.i386.rpm (freeware)
  • vixie-cron-4.1-66.1.el5.i386.rpm (distributable)
  • wget-1.10.2-7.el5.i386.rpm (GPL)
  • which-2.16-7.i386.rpm (GPL)
  • xen-ukrnl-3.2.2-17.i386.rpm (GPL)
  • xen-umods-3.2.2-17.i386.rpm (GPL)
  • yum-3.0.5-1.el5.centos.2.noarch.rpm (GPL)
  • zlib-1.2.3-3.i386.rpm (BSD)

Additionally, the following custom packages are installed (source RPMS included).

  • mysql-files-1.3.8-1.noarch.rpm (Commercial)

Theory of Operation

The MYSQL5 appliance is based on mysql-server-5.0.77. The default storage engine used is MyISAM. The appliance also supports MEMORY, InnoDB, BerkeleyDB and MRG_MYISAM as alternatives.

Configuration

Configuration files

The configuration file for the MYSQL5 appliance is /etc/my.cnf on the boot volume. It is used for providing startup options for MySQL. The default file on the appliance looks like this:

[mysqld]
datadir=/mnt/data
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
#$$propN: 1 : use_old_passwords
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
pid-file=/var/run/mysqld/mysqld.pid

Any valid options that can be used for the start of mysql daemon/server can be added to the configuration file. For a detailed list of available options as well as sample configutrations refer to the MySQL manual at http://dev.mysql.com/doc/refman/5.0/en/option-files.html.

Properties

Property name Type Description
auto_create Integer Whether to create the database if it doesn't exist. Possible values are 1 to create it and 0 to prevent auto creation (to avoid accidental overwrite in case of corrupted volumes). If set to 0 and a database doesn't exist on the user volume, the appliance starts in maintenance mode (with stopped MySQL daemon). Default is 1.
error_log_filename String Fully qualified file name for the error log file, relative to the log file system (e.g., /mysql/db.log). If empty, error logging is disabled. Default: (empty).
error_log_level String Error logging level. Possible values are: error logs only errors, warn logs both warnings and errors. This property is not case sensitive. Default: error
use_old_passwords Integer Whether the MySQL server should use the old password hashing algorithm for user login. Possible values are: 1 to use the older password hashing algorithm so newly created users are able to connect through older pre-4.1 MySQL clients, 0 to use the newer password hashing algorithm (attempts to connect to the MYSQL server with a pre-4.1 MYSQL client will fail). Default is 1.

For a more detailed description of the properties and sample configurations look at MYSQL5? appliance datasheet.

Log Files

By default, the mysql error logs are disabled. To enable them, the error_log_filename property must be specified. See the properties section above for configuration details and information about the error_log_level property.

Important Notes

This section is not relevant for the MYSQL5 appliance.

-- PavelGeorgiev - 27 Jan 2010

 
Copyright © CA 2005-2011. All Rights Reserved.
%