Installing phpwiki with MySQL 
-----------------------------

A MySQL configuration is relatively hard to setup and slow, compared 
to dba or better SQL databases.

This assumes that you have a working MySQL server and client setup.
Installing MySQL is beyond the scope of this document.
For more information on MySQL go to http://www.mysql.org/

1. If you do not have a suitable database already, create one (using
   the root or other privileged account you set up when MySQL was
   installed.)

	mysqladmin -uuser -ppassword create phpwiki

2. If necessary create a user for that database which has the rights
   to select, insert, update, delete (again using the root
   administration account).

	mysql -uuser -ppassword phpwiki

   A MySQL grant statement for this user would look like this:

	GRANT select, insert, update, delete, lock tables 
	ON phpwiki.*
	TO wikiuser@localhost
	IDENTIFIED BY 'password';

	Upgrade note: The mysql wikiuser needs to have the LOCK TABLES
	privilege granted for all the wiki tables (PAGE, VERSION,
	LINK, RECENT and NONEMPTY). This is a relatively new privilege type.

3. Create tables inside your database (still using the root account).

	mysql -uuser -ppassword phpwiki < schemas/mysql-initialize.sql

   Note: the user specified in this command needs to have the rights
         to drop and create tables. Use the same user as in step 1.

4. Edit the DATABASE settings in config/config.ini to reflect your settings.

	a) DATABASE_TYPE should be set to 'SQL' or 'ADODB'.
	b) DATABASE_DSN should be set to something like
           'mysql://guest@unix(/var/lib/mysql/mysql.sock)/phpwiki".
	   (where 'phpwiki' is the mysql database name.)
        c) Note that if you set DATABASE_PREFIX to a 
           non-empty string, you will have to edit
           schemas/mysql-initialize.sql before you perform step
           three (above).  (Sorry.)  (You might also edit
           schemas/mysql-destroy.sql at the same time, so you
           don't forget.)

That's it. Phpwiki should now work. 
DATABASE_DIRECTORY and DATABASE_DBA_HANDLER are ignored for mysql.

If you run into problems then check that your MySQL-user has
the necessary access rights for the phpwiki tables.

Hint for Linux-Debian users: it may be necessary to load the MySQL
module first: insert the following line in config.php before
"mysql.php" gets included:
if (!extension_loaded("mysql"))  { dl("mysql.so"); }


Upgrading a MySQL phpwiki
-------------------------

If schemas/mysql-initialize.sql has changed for your old phpwiki
installation (or changed when compared to the old "mysql.sql" file),
you can either create missing tables manually and ALTER the changed
tables manually.  
Or you can run ?action=upgrade (also from "Upgrade"
at PhpWikiAdministration), but then your database user needs the
necessary ALTER and CREATE permissions. 
You might want to set DBADMIN_USER temporarily in your config.ini.
?action=upgrade also brings all changed pgsrc files up-to-date.

/Reini Urban and Arno ahollosi@mail.com
