Using MySQL DB instead of Derby DB
To use MySQL instead of Derby, please follow these steps:
- To install and configure the DB , please follow the documentation at https://docs.aws.amazon.com/enginframe/latest/ag/section-installation.html#mysql-version
Note: If you do not know how to setup MySQL, please check: https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html - Download the respective JBDC connector for your Linux distro at https://dev.mysql.com/downloads/connector/j/
- Extract the file and copy the jar file to
$EF_ROOT/[version]/enginframe/WEBAPP/WEB-INF/lib/
Remeber to change $EF_ROOT to enginframe base path. And [version] to your EnginFrame version.
Note: If you installed the .deb or .rpm, probably the jar will be stored in:/usr/share/java/mysql-connector-java.jar
/usr/share/java/mysql-connector-j.jar
- Extract the file and copy the jar file to
- Edit the
$EF_ROOT/conf/enginframe.conf
DERBY_CONFIGURED:DERBY_CONFIGURED="false"
- Edit the file
$EF_ROOT/conf/enginframe/server.conf
and set the following parameters:ef.db.url=jdbc:mysql://[your_db_server_hostname]:3306;databaseName=EnginFrameDB;
ef.db.admin.name=enginframedb
ef.db.admin.password=efdbpassword - Restart the EnginFrame
systemctl restart enginframe
- Then check the systemd logs:
journalctl -u enginframe.service
Important: If you created a database with character set different of latin1, you need to fix that:
ALTER DATABASE EnginFrameDB CHARACTER SET=’latin1′
You can review this configuration with the command below (check character_set_database):
MariaDB [EnginFrameDB]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Using MariaDB over Derby
You can follow the same MySQL procedure.
To setup MariaDB, you can download and install with this script (for any Linux distro):
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
Using PostgreSQL over Derby
To use PostgreSQL instead of Derby, please follow these steps:
- To install and configure PostgreSQL, follow https://www.postgresql.org/download/linux/ubuntu/ for Ubuntu based Linux distros or https://www.postgresql.org/download/linux/redhat/ for RedHat based Linux distros.
- Download the respective JBDC driver connector for your Linux distro at https://jdbc.postgresql.org/download/
- Copy the jar file to
$EF_ROOT/[version]/enginframe/WEBAPP/WEB-INF/lib/
Remeber to change $EF_ROOT to enginframe base path. And [version] to your EnginFrame version.
- Copy the jar file to
- Edit the
/opt/nice/enginframe/conf/enginframe.conf
DERBY_CONFIGURED:DERBY_CONFIGURED="false"
- Edit the file
$EF_ROOT/conf/enginframe/server.conf
and set the following parameters:ef.db.url=jdbc:postgresql://[your_db_server_hostname]:3306;databaseName=EnginFrameDB;
ef.db.admin.name=enginframedb
ef.db.admin.password=efdbpassword - Restart the EnginFrame
systemctl restart enginframe
- Then check the systemd logs:
journalctl -u enginframe.service
Important: If you created a database with character set different of latin1, you need to fix that:
ALTER DATABASE EnginFrameDB CHARACTER SET=’latin1′