DevTest login issue - default credentials not recognised after installation

Document ID : KB000040924
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem

I have installed DevTest and with an external database and I cannot login using the default credentials.

Environment

LISA with ACL or DevTest version 8.0 or later using Oracle or MySQL databases.

Cause

In order to successfully save the encrypted passwords in the database the database must be configured to use a UTF8 character set. Not using the correct character set results in the password data being corrupt.

Resolution

In order to resolve these issues it may be necessary to obtain the assistance of the database administrator. 

Oracle Database

An Oracle database needs to be provisioned with the character set of ALU32UTF8 in order to function correctly with DevTest. 

To ascertain the character set in use for the database, use the following SQL statement

SQL> SELECT value$ FROM sys.props$ WHERE name='NLS_CHARACTERSET';

This statement should provide output similar to the following - 

VALUE$
--------------------------------------------------------------------------------
AL32UTF8
 
If the character set is not AL32UTF8 then the database must be dropped and re-created with the CHARACTER SET AL32UTF8 option specified.
 
MySQL

A MySQL database requires that the database be provisioned with UTF8 as its default character set and, further, that the database defaults are also configured as UTF8. To verify these the following sequence may be used:

1. Server Defaults 

To check the server defaults, use the following SQL command at the mysql> prompt

mysql> show variables like 'char%';

The output from this command should be similar to the following:-

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

If any of character set variables are not utf8 then the server configuration should be altered - this configuration is held in a file (my.cnf on Linux and UNIX variants, or my.ini on Windows).  

The following changes should be made my editing the configuration file using a text editor:-

In the section [myslqd] add (or replace, if present) the collation_server and character_set_server directives. For example:-

[mysqld]
collation_server=utf8_unicode_ci
character_set_server=utf8

The server will need to be restarted after this change has been made, and the database should be recreated following this change - details of how to create the database are included later in this document.

 2. Per-Database Setting

To verify the per-database character set, the following SQL command can be used at the mysql> prompt

mysql> SELECT * FROM information_schema.SCHEMATA where schema_name = "registry";

assuming that the database is named "registry"

+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| NULL         | registry    | utf8                       | utf8_unicode_ci        | NULL     |
+--------------+-------------+----------------------------+------------------------+----------+
1 row in set (0.00 sec)

Should either DEFAULT_CHARACTER_SET or DEFAULT_COLLATION_NAME not be UTF8 then it will be necessary to drop and re-create the database.

3. (Re-)Creating the Database

The database should be created using a command similar to the following at the mysql> prompt

mysql> create database registry default character set utf8 default collate utf8_unicode_ci;

Again this example command assumes that the database name is "registry" - this should be changed to a suitable database  name for your environment.

 

Additional Information

Further information can be found in the system documentation for the Oracle and MySQL databases respectively.