Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This problem may be related to the fact that the MySQL database by default uses the UTF-8 character set and collation.

One workaround for this character limit is to set and enable innodb_large_prefix variable in the my.ini file, as shown below.

innodb_large_prefix = ON

This allows you to include columns up to 3072 bytes long in InnoDB indexes.

To resolve this issue, you should can also upgrade License Statistics that uses an embedded MySQL database to License Statistics using an external MySQL database. If this does not resolve the problem, you can try upgrading License Statistics from an external to embedded database.

Different versions of MySQL database

When the version of your database is different than the version of the database provided by X-Formation, you may get error messages similar to the following in the License Statistics log file:

[ERROR] mysql: missing sql_mode variables: STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_UNSIGNED_SUBTRACTION

To resolve this issue:

  1. Find the following variables in the my.ini file:
    sql_mode = STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_UNSIGNED_SUBTRACTION

  2. Enclose these variables in quotation marks, as shown below.
    sql_mode = "STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_UNSIGNED_SUBTRACTION"

You can also find more information about this problem in the MySQL reference manual.

MySQL error 1146: "table doesn't exist"

When trying to move a MySQL database from Windows to a Linux, you may receive the following errors:

[ERROR] update: cannot obtain 'xformation' database version: "Error 1146: Table 'xformation.Version' doesn't exist"
[ERROR] License Statistics C++ Core stopped with error: "update: cannot obtain 'xformation' database version: \"Error 1146: Table 'xformation.Version' doesn't exist\"".

The above errors may be caused by differences in case sensitivity between MySQL distributions for Windows and Linux.

To resolve this problem, you need to open your currently used mysql configuration file (my.ini) and find lower_case_table_names variable. The default value of this variable is

  • On Unix: 0
  • On Windows: 1
  • On Mac OS X: 2

For example, to run the database that was migrated from Windows to Linux, you need to set the following variable on your Linux machine:

lower_case_tables_names = 1

For more information about this problem, see the MySQL reference manual.