Once Java and MySQL are installed and Specify has been downloaded, a Specify database must be built in MySQL. A Specify Master username and password must also be created, which allows Specify to access the Specify database. Luckily, the Specify engineers have created a separate application called the SPWizard (located in the bin directory in your file system) which can create the Specify database and Specify Master. The Specify Wizard also steps you through other setup processes, such as creating an administrative user within Specify and, depending on your discipline, allowing you the option of pre-loading taxonomic authority files. It is highly recommended that you read the documentation BEFORE running the Wizard to bettter understand these setup processes and how they apply to your specific requirements.
The way in which you will use the Wizard to complete the Specify database setup depends on how Specify is accessing the Specify (MySQL) database. MySQL can either be stored on a desktop and accessed only by that desktop (locally), stored on a desktop but accessed by the desktop (locally) and by other desktops (remotely), or stored on a server and accessed by desktops (remotely). The Specify setup process for each of these systems is explained below.
MySQL is stored on a desktop and only accessed locally.
Run the Specify Wizard to setup the Specify database.
MySQL is stored on a desktop but accessed both locally and remotely.
Run the Specify Wizard to setup the Specify database. This will create the Specify Master with local permissions, it is then necessary to give each of the clients, (computers connecting remotely), permissions for the Specify Master by entering commands using the command line tool in MySQL. Be sure to use static IP addresses for each of the clients. When entering the commands from within MySQL replace the red text with the appropriate names for your MySQL setup. Type this command:
$ mysql -u root -p
> GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON Database Name.* TO 'Master Username'@'ip address of client computer' IDENTIFIED BY 'Master Password';
At the prompt enter the second command:
> flush privileges;
> exit
MySQL is stored on a server and only accessed remotely.
When the database is only accessed remotely, the Specify Master username and password must be created using the command line tools in MySQL before running the Specify Wizard. Be sure to use static IP addresses for each of the clients. When entering the commands from within MySQL replace the red text with the appropriate names for your MySQL setup. Type this command:
> $ mysql -u root -p
> GRANT ALL ON *.* TO 'root'@'Primary client IP address' IDENTIFIED BY 'Server MySQL root password';
> GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON *.* TO 'Master username'@'Primary client IP address' IDENTIFIED BY 'Master Password';
> flush privileges;
> exit
Note: If you have other databases in this instance of MySQL using the command '*.*' will change the root and Master settings for those databases. To avoid this, create the Specify database first, then set the permissions for it using these commands rather than those found above:
> $ mysql -u root -p
> CREATE DATABASE Database name;
> GRANT ALL ON Database name.* TO 'root'@'Primary client IP address' IDENTIFIED BY 'Server MySQL root password';
> GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON Database name.* TO 'Master username'@'Primary client IP address' IDENTIFIED BY 'Master Password';
> flush privileges;
> exit
Then, when running the Wizard enter the Database name in the Database Name section of the first Wizard window.
Once the Specify Master credentials have been created the Specify Wizard can be run Using the primary client computer to create the Specify database setup process, but it is important to follow the procedures included in the Wizard documentation for the first two Wizard windows.
Each of the clients, (computers connecting remotely), will need to be given permissions for the Specify Master by entering commands using the command line tool in MySQL. Be sure to use static IP addresses for each of the clients. When entering the commands from within MySQL replace the red text with the appropriate names for your MySQL setup. Type this command:
> $ mysql -u root -p
> GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON *.* TO 'Master username'@'Client IP address' IDENTIFIED BY 'Master Password';
> flush privileges;
> exit
Once the database setup process has been completed, users can start managing data. It is important to note that users that will access the Specify database remotely must install specify on their computer, but must not run the Wizard, as this would create a separate Specify database. Users simply need to launch Specify and enter the Specify database as well as the Server name (or IP address if the IP is 'static') in the appropriate fields in the Login tool. The database and server information is stored in Specify and will not need to be entered during subsequent launches of Specify.