| At line 1 changed one line |
| Download the latest mysql connector J for you mysql server from their website. [http://dev.mysql.com/downloads/connector/j/] |
| __IMPORTANT: due to the security updates since CrushFTP version 10.5.2+ any JDBC driver jar file needs to be placed into the CrushFTP10/plugins/lib/ directory, or it won't load.__ |
| \\ |
| \\ |
| Download the latest mysql connector J for you mysql server from their website. |
| \\ |
| [https://dev.mysql.com/downloads/connector/j/] |
| \\ |
| Choose the 'platform independent' type download, and extract the archive. There will be a jar file inside that extracted folder. |
| \\ |
| I suggest placing the mysql-connector-java-8.0.28.jar file from this in the plugins/lib folder of CrushFTP and giving it the name "mysql.jar". |
| At line 3 changed one line |
| I suggest placing the mysql-connector-java-5.0.8-bin.jar file from this in the plugins/lib folder of CrushFTP and giving it the name "mysql.jar". |
| Then go to Preferences, stats config and set the following items: |
| \\ |
| [{Image src='sql_stats1.jpg' width='..' height='..' align='left|center|right' style='..' class='..' }] |
| \\ |
| {{{ |
| stats_db_url: jdbc:mysql://127.0.0.1:3306/crushftp_stats |
| stats_db_driver: com.mysql.cj.jdbc.Driver |
| stats_db_user: root |
| stats_db_driver_file: plugins/lib/mysql.jar |
| }}}\\ |
| \\ |
| Use MySQL Workbench and make a new DB with the name "crushftp_stats" (or adjust the URL above to reference the name you choose.) Below is the schema to put in it:\\ |
| \\ |
| {{{ |
| CREATE TABLE META_INFO(RID DOUBLE NOT NULL PRIMARY KEY,SESSION_RID DOUBLE NOT NULL,TRANSFER_RID DOUBLE NOT NULL,ITEM_KEY VARCHAR(100) DEFAULT NULL,ITEM_VALUE VARCHAR(2000) DEFAULT NULL); |
| At line 5 changed one line |
| Then edit the prefs.XML file and set the following items: |
| CREATE TABLE SESSIONS(RID DOUBLE NOT NULL PRIMARY KEY,SESSION VARCHAR(100) DEFAULT NULL,SERVER_GROUP VARCHAR(50) DEFAULT NULL,USER_NAME VARCHAR(100) DEFAULT NULL,START_TIME DATETIME DEFAULT NULL,END_TIME DATETIME DEFAULT NULL,SUCCESS_LOGIN VARCHAR(10) DEFAULT NULL,IP VARCHAR(50) DEFAULT NULL); |
| At line 7 changed 6 lines |
| {{{ |
| <stats_db_url>jdbc:mysql://127.0.0.1:3306/crushftp_stats</stats_db_url> |
| <stats_db_driver>com.mysql.jdbc.Driver</stats_db_driver> |
| <stats_db_user>root</stats_db_user> |
| <stats_db_driver_file>plugins/lib/mysql.jar</stats_db_driver_file> |
| }}} |
| CREATE TABLE TRANSFERS(RID DOUBLE NOT NULL PRIMARY KEY,SESSION_RID DOUBLE NOT NULL,START_TIME DATETIME DEFAULT NULL,DIRECTION VARCHAR(8) DEFAULT NULL,PATH VARCHAR(255) DEFAULT NULL,FILE_NAME VARCHAR(2000) DEFAULT NULL,URL VARCHAR(2000) DEFAULT NULL,SPEED INTEGER DEFAULT NULL,TRANSFER_SIZE DOUBLE DEFAULT NULL,IGNORE_SIZE VARCHAR(1) DEFAULT NULL); |
| At line 14 changed one line |
| Use MySQL WOrkbench and make a new DB with the name "crushftp_stats" (or adjust the URL above to reference the name you choose.) Below is the schema to put in it: |
| ALTER TABLE `TRANSFERS` ADD INDEX (`SESSION_RID`,`TRANSFER_SIZE`,`DIRECTION`,`IGNORE_SIZE`,`START_TIME`); |
| At line 34 added 10 lines |
| }}}\\ |
| \\ |
| That is it. Now the statistics data should be going to the MySQL tables, and reports will automatically run against those tables too.\\ |
| \\ |
| !! Setup Auto increment primary keys |
| \\ |
| 1. On prefs.XML (find it at CrushFTP install folder) change the tag value "__stat_auto_increment__" to __true__.\\ |
| \\ |
| 2. Change the RID column (on META_INFO, SESSIONS and TRANSFERS table) to be auto incremented and data type from DOUBLE to BIGINT.\\ |
| \\ |
| At line 17 changed 8 lines |
| CREATE TABLE META_INFO ( |
| RID double NOT NULL, |
| SESSION_RID double NOT NULL, |
| TRANSFER_RID double NOT NULL, |
| ITEM_KEY varchar(100) default NULL, |
| ITEM_VALUE varchar(2000) default NULL, |
| PRIMARY KEY (RID) |
| ); |
| ALTER TABLE `META_INFO` CHANGE COLUMN `RID` `RID` BIGINT(20) NOT NULL AUTO_INCREMENT; |
| At line 26 changed 11 lines |
| CREATE TABLE SESSIONS ( |
| RID double NOT NULL, |
| SESSION varchar(100) default NULL, |
| SERVER_GROUP varchar(50) default NULL, |
| USER_NAME varchar(100) default NULL, |
| START_TIME datetime default NULL, |
| END_TIME datetime default NULL, |
| SUCCESS_LOGIN varchar(10) default NULL, |
| IP varchar(50) default NULL, |
| PRIMARY KEY (RID) |
| ); |
| ALTER TABLE `SESSIONS` CHANGE COLUMN `RID` `RID` BIGINT(20) NOT NULL AUTO_INCREMENT; |
| At line 38 changed 17 lines |
| CREATE TABLE TRANSFERS ( |
| RID double NOT NULL, |
| SESSION_RID double NOT NULL, |
| START_TIME datetime default NULL, |
| DIRECTION varchar(8) default NULL, |
| PATH varchar(255) default NULL, |
| FILE_NAME varchar(2000) default NULL, |
| URL varchar(2000) default NULL, |
| SPEED int default NULL, |
| TRANSFER_SIZE double default NULL, |
| IGNORE_SIZE varchar(1) default NULL, |
| PRIMARY KEY (RID) |
| ); |
|
| }}} |
|
| That is it. now the statistics data should be going to the MySQL tables, and reports will automatically run against those tables too. |
| ALTER TABLE `TRANSFERS` CHANGE COLUMN `RID` `RID` BIGINT(20) NOT NULL AUTO_INCREMENT; |
| }}}\\ |
| \\ |
| 3. Adjust insert queries. Remove the __RID__ value from all insert query.\\ |
| \\ |
| [attachments|insert_methods.png]\\ |
| \\ |
| Change __stats_insert_meta_info__ from:\\ |
| {{{ |
| INSERT INTO META_INFO (RID, SESSION_RID, TRANSFER_RID, ITEM_KEY, ITEM_VALUE) VALUES (?,?,?,?,?) |
| }}}\\ |
| to:\\ |
| {{{ |
| INSERT INTO META_INFO (SESSION_RID, TRANSFER_RID, ITEM_KEY, ITEM_VALUE) VALUES (?,?,?,?) |
| }}}\\ |
| \\ |
| __stats_insert_sessions__ from:\\ |
| {{{ |
| INSERT INTO SESSIONS (RID, SESSION, SERVER_GROUP, USER_NAME, START_TIME, END_TIME, SUCCESS_LOGIN, IP) VALUES (?,?,?,?,?,?,?,?) |
| }}}\\ |
| to:\\ |
| {{{ |
| INSERT INTO SESSIONS (SESSION, SERVER_GROUP, USER_NAME, START_TIME, END_TIME, SUCCESS_LOGIN, IP) VALUES (?,?,?,?,?,?,?) |
| }}}\\ |
| \\ |
| __stats_insert_transfers__ from:\\ |
| {{{ |
| INSERT INTO TRANSFERS (RID, SESSION_RID, START_TIME, DIRECTION, PATH, FILE_NAME, URL, SPEED, TRANSFER_SIZE, IGNORE_SIZE) VALUES (?,?,?,?,?,?,?,?,?,'N') |
| }}}\\ |
| to:\\ |
| {{{ |
| INSERT INTO TRANSFERS (SESSION_RID, START_TIME, DIRECTION, PATH, FILE_NAME, URL, SPEED, TRANSFER_SIZE, IGNORE_SIZE) VALUES (?,?,?,?,?,?,?,?,'N') |
| }}}\\ |