Important mysql settings in my.cfg/my.ini:
[mysqld] ## LAMS additions explicit_defaults_for_timestamp character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci transaction-isolation=READ-COMMITTED sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" interactive_timeout = 300 wait_timeout = 300 innodb_file_per_table = 1 max_allowed_packet=32M [mysqldump] default-character-set=utf8mb4 hex-blob=1 single-transaction=1 quick=1
Create DB and db user
(default settings, please change)
mysql> CREATE DATABASE lams DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; mysql> CREATE USER 'lams'@'localhost' IDENTIFIED BY 'lamsdemo'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON lams_nus3.* TO 'lams'@'localhost'; mysql> FLUSH PRIVILEGES;
LAMS 2.5 and 3.0
LAMS requires MySQL 5+. 0. Note that it will not work with MySQL 4 or below.
You can download MySQL 5.0 + for Windows from the MySQL downloads website. The MySQL Essentials package is about 17 MB in size.
Installing and Configuring MySQL
This tutorial shows how to install MySQL server and prepare a user and database for LAMS:
<iframe width="640" height="480" src="//www.youtube.com/embed/Xuj5kyxWq_o" frameborder="0" allowfullscreen></iframe>
Creating a the LAMS database
Login into MySQL as root and run the following two commands to create a database for LAMS and its user to access it:
mysql> DROP DATABASE IF EXISTS lams; mysql> CREATE DATABASE lams DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON lams.* TO lams@localhost IDENTIFIED BY 'lamsdemo';
We use lams as database name and db user and lamsdemo as password. These are the default settings, but you can set your own. Just make sure you change these settings when you build LAMS (see common.properties file).
Only required if you know what you are doing.
For those interested, you can find out more about installing and configuring MySQL from the MySQL chapter on Windows installation. For LAMS usage, the defaults in the installer should be fine.
LAMS expected the following two entries to exist in the my.ini file in the \in the [mysqld\] section Wiki Markup
[mysqld] ... transaction-isolation=READ-COMMITTED ... sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
For those installing on Windows without the installer, please ensure you have these lines in your my.ini, or my.cnf. This file can usually be found in either your MySQL Server directory (e.g. C:\Program Files\MySQL Server 5.0) or in your Windows directory (C:\Windows). If you are using Linux/Ubuntu/Debian, you can probably find the file in /etc/mysql/my.cnf.
If installing MySQL using the MySQL Windows installer the sql-mode will already be set for you. In this case the transaction-isolation setting will be configured by the LAMS Windows installer, so you don't have to worry about editing the my.ini file.
If you are installing LAMS onto MySQL which is part of XAMPP, then you need to make sure that the my.ini file exists BEFORE you start installing LAMS. The file is likely to be in your windows directory. If it is not, run your XAMPP control panel and click the "Admin" button next to mysql. This should start the WinMySQLadmin window - if a my.ini file doesn't exist it should set one up for you automatically. If this is the first time you have run WinMySQLadmin, it asks for a username and password. I left both fields blank and clicked Cancel, and it created the my.ini file for me anyway. I'm not sure what setting a username and password here does as I set it once and it never seemed to ask me for it every again!
If the my.ini file doesn't exist before running the installer, you will be warned that the installer can't find the my.ini file and you will neeed to add the transaction-isolation setting manually using WinMySQLadmin (or a text editor).
The file to modify is in /etc/mysql/my.cnf