Database Configuration - hmislk/hmis GitHub Wiki

Make sure to have a root superuser privileges.

Setting up Lower Case Table Names

When the database is running in a Linux environment, MySQL or MariaDB table names are case sensitive by default. The web application access database through JPA, which requires case insensitive table names. Before running the application, need to set the MySQL or MariaDB setting to allow case insensitive table names. If is done as follows.

MariaDB

The MariaDB has different levels of configuration files. The MariaDB/MySQL tools read configuration files in the following order:

  • Edit "/etc/mysql/mariadb.cnf" to set global defaults,
  • Edit "/etc/mysql/conf.d/*.cnf" to set global options.
  • Edit "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
  • Edit "~/.my.cnf" to set user-specific options.

If the same option is defined multiple times, the last one will apply.

You need to have super user privileges to change the first three files. Open the file with an editor like nano.

Edit the "/etc/mysql/mariadb.cnf" file

sudo nano /etc/mysql/my.cnf

Create the following two lines at the end of the comments of the file.

'[mysqld]'

'lower_case_table_names=1'

Save the file and restart mySQL or MariaDB by

'sudo service mysql restart'

Afterword the table names will be case insensitive.

MySQL

Edit the configuration file of mySQL as below.

'sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf'

Find out the following section.

'[mysqld]'

Add the following line.

'lower_case_table_names=1'

Restart mySQL service as below.

'sudo service mysql restart'