Doc downloads (PDF, HTML & XML)
[Crucible Knowledge Base]
This page describes how to use Fisheye/Crucible with both MySQL Enterprise Server and MySQL Community Server. Note that when they are used together, Fisheye and Crucible share the same external database.
To switch to a MySQL database, install MySQL and then follow the steps below. Please note that during the migration of database servers, the Fisheye/Crucible instance will not be available to users or to external API clients.
Note that the JDBC driver for MySQL is not bundled with Fisheye/Crucible (due to licensing restrictions).
MySQL 5.7.x compatibility
For MySQL 5.7, Fisheye/Crucible requires at least version 5.7.7.
JDBC Connector/J compatibility
We recommend using the latest version of Connector/J 8.x. You must add the nullCatalogMeansCurrent=true
connection property (see AO-3462). Older versions of the driver (5.1.x) do not require this property.
To start with:
my.ini
or my.cnf)
:[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_bin
mysql-connector-java-x.y.zz-bin.jar
file to your FISHEYE_INST/lib
directory. If the lib/
directory doesn't already exist, you will need to create it. Set up a MySQL database as follows:
utf8mb4
character set encoding utf8mb4_bin
collation (to ensure case sensitivity).Here is an example of how to do that. When Fisheye/Crucible and MySQL run on the same machine (accessible through localhost
), issue the following commands (replacing fisheyeuser
and password
with your own values):
mysql> SET GLOBAL default_storage_engine = 'InnoDB'; mysql> CREATE USER 'fisheyeuser'@'localhost' IDENTIFIED BY 'password'; mysql> CREATE DATABASE fisheye CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; mysql> GRANT ALL PRIVILEGES ON fisheye.* TO 'fisheyeuser'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> QUIT
This creates an empty MySQL database with the name fisheye
, and a user that can log in from the host that FIsheye is running on who has full access to the newly created database. In particular, the user should be allowed to create and drop tables, indexes and other constraints.
Now, verify that database character encodings are correct:
SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Both the server and database character set must be UTF8 and we strongly recommend UTF8MB4, which covers full Unicode character set.
You may not initially notice a problem because of the characterset overlap but this is indeed a requirement. We've verified that when using a charset such as Swedish 7 bit as the server charset and UTF-8 as the database charset data corruption is easy to reproduce and obvious. This proves that the server character set is as important and that data corruption is possible when there is a charset mismatch. We absolutely cannot suggest a configuration where the server charset and database charset are anything other than UTF-8.
In case you already use Fisheye/Crucible with MySQL database but you have UTF-8 encoding set, see Migrate MySQL database to UTF8MB4 character encoding article.
In order to migrate to a different database backend, you must create a backup of sql data, configure the database and finally import the data using a backup restoration process. This can be done from either the Fisheye/Crucible administration console, which streamlines the process, or using the command line tool which Fisheye/Crucible provides.
Database
page in Fisheye/Crucible's Administration console.To log in to the Admin area, you can either:
http://HOSTNAME:8060/admin/
, where HOSTNAME
is the name of the server on which you installed Fisheye.Once logged in as an administrator you can also get to the Admin area by clicking the 'cog' menu in the Fisheye/Crucible header, and choosing Administration.
useUnicode=true
characterEncoding=UTF8MB4
connectionCollation=utf8mb4_bin
nullCatalogMeansCurrent=true
.jar
file in the classpath (see Prerequisites section above for instructions on how to install the driver). Also, ensure that the database user can log in to the database from the machine that Fisheye/Crucible is running on and that all the required privileges are present.sql
data from the Fisheye/Crucible instance. Read Backing up and restoring Fisheye data and Backing up and restoring Crucible data for information on how to create a backup.Run the following command from the <FishEye installation directory>/bin
directory:
$ ./fisheyectl.sh restore --sql \ --file '/path/to/backup.zip' \ --dbtype mysql \ --jdbcurl 'jdbc:mysql://hostname/dbname?useUnicode=true&characterEncoding=UTF8MB4&connectionCollation=utf8mb4_bin&nullCatalogMeansCurrent=true' \ --username crucible \ --password password