# phpman > man > Apache::Session::Store::MySQL

## NAME
    [Apache::Session::Store::MySQL](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession%3A%3AStore%3A%3AMySQL/markdown) - Store persistent data in a MySQL database

## SYNOPSIS
     use [Apache::Session::Store::MySQL](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession%3A%3AStore%3A%3AMySQL/markdown);

     my $store = new [Apache::Session::Store::MySQL](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession%3A%3AStore%3A%3AMySQL/markdown);

     $store->insert($ref);
     $store->update($ref);
     $store->materialize($ref);
     $store->remove($ref);

## DESCRIPTION
    [Apache::Session::Store::MySQL](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession%3A%3AStore%3A%3AMySQL/markdown) fulfills the storage interface of [Apache::Session](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession/markdown). Session data is
    stored in a MySQL database.

## SCHEMA
    To use this module, you will need at least these columns in a table called 'sessions', or
    another table name if you provide the TableName argument:

     id [char(32)](https://www.chedong.com/phpMan.php/man/char/32/markdown)     # or however long your session IDs are.
     a_session blob  # or varbinary if you plan to use a big session (>64k after serialization)

    To create this schema, you can execute this command using the mysql program:

     CREATE TABLE sessions (
        id [char(32)](https://www.chedong.com/phpMan.php/man/char/32/markdown) not null primary key,
        a_session blob
     );

    If you use some other command, ensure that there is a unique index on the table's id column.

## CONFIGURATION
    The module must know what datasource, username, and password to use when connecting to the
    database. These values can be set using the options hash (see [Apache::Session](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession/markdown) documentation).
    The options are:

    DataSource
    UserName
    Password
    TableName
    Handle

    Example:

     tie %hash, '[Apache::Session::MySQL](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession%3A%3AMySQL/markdown)', $id, {
         DataSource => 'dbi:mysql:database',
         UserName   => 'database_user',
         Password   => 'K00l',
         TableName  => 'sessions'
     };

    Instead, you may pass in an already-opened DBI handle to your database.

     tie %hash, '[Apache::Session::MySQL](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession%3A%3AMySQL/markdown)', $id, {
         Handle => $dbh
     };

## AUTHOR
    This modules was written by Jeffrey William Baker <<jwbaker@acm.org>>

## SEE ALSO
    [Apache::Session](https://www.chedong.com/phpMan.php/perldoc/Apache%3A%3ASession/markdown)

