Smart Processes Management
MySQL executor for Runnerty:
Through NPM
npm i @runnerty/executor-mysql
You can also add modules to your project with runnerty-cli
npx runnerty-cli add @runnerty/executor-mysql
This command installs the module in your project, adds example configuration in your config.json
and creates an example plan of use.
If you have installed runnerty-cli globally you can include the module with this command:
rty add @runnerty/executor-mysql
Add in config.json:
{
"id": "mysql_default",
"type": "@runnerty-executor-mysql",
"user": "mysqlusr",
"password": "mysqlpass",
"database": "MYDB",
"host": "myhost.com",
"port": "3306"
}
{
"id": "mysql_default",
"type": "@runnerty-executor-mysql",
"user": "mysqlusr",
"password": "mysqlpass",
"database": "MYDB",
"host": "myhost.com",
"port": "3306",
"ssl": {
"ca": "./ssl/my.ca"
}
}
Parameter | Description |
---|---|
user | The MySQL user to authenticate as. |
password | The password of that MySQL user. |
database | Name of the database to use for this connection. (Optional) |
host | The hostname of the database you are connecting to. |
port | The port number to connect to. (Default: 3306) |
socketPath | The path to a unix domain socket to connect to. When used host and port are ignored. (Optional) |
charset | The charset for the connection (collation). (Default: 'UTF8_GENERAL_CI') |
timezone | The timezone configured on the MySQL server. (Default: 'local') |
insecureAuth | Allow connecting to MySQL instances that ask for the old (insecure) authentication method. (Default: false) |
flags | Connection flags. More information here. |
multipleStatements | Allow multiple mysql statements per query. (Default: true) |
ssl/ca | SSL CA File (Optional) |
ssl/cert | SSL CERT File (Optional) |
ssl/key | SSL KEY File (Optional) |
Add in plan.json:
{
"id": "mysql_default",
"command_file": "/etc/runnerty/sql/test.sql"
}
{
"id": "mysql_default",
"command": "SELECT NOW()"
}
The saved can be indicated in the file of the results obtained from a query in csv, xlsx and json format. These files will be generated with streams. You only have to indicate the corresponding property in the parameters:
XLSX Format
Parameter | Description |
---|---|
xlsxFileExport | Path of xlsx file export. |
xlsxAuthorName | Author file name. (Optional) |
xlsxSheetName | Name of the sheet. (Optional) |
Sample:
{
"id": "mysql_sample",
"command": "SELECT * FROM USERS",
"xlsxFileExport": "./my_output.xlsx",
"xlsxAuthorName": "Runnerty",
"xlsxSheetName": "MySheetSample"
}
CSV Format
Parameter | Description |
---|---|
csvFileExport | Path of csv file export. |
csvOptions/headers | Type: boolean/string[]. The headers will be auto detected from the first row or you can to provide headers array: ['h1name','h2name',...]. |
csvOptions/delimiter | Alternate delimiter. (Default: ',') |
csvOptions/quote | Alternate quote. (Default: '"') |
csvOptions/alwaysWriteHeaders | Set to true if you always want headers written, even if no rows are written. (Default: false) |
csvOptions/rowDelimiter | Specify an alternate row delimiter (i.e \r\n). (Default: '\n') |
csvOptions/quoteHeaders | If true then all headers will be quoted. (Default: quoteColumns value) |
csvOptions/quoteColumns | If true then columns and headers will be quoted (unless quoteHeaders is specified). (Default: false). More info here. |
csvOptions/escape | Alternate escaping value. (Default: '"') |
csvOptions/includeEndRowDelimiter | Set to true to include a row delimiter at the end of the csv. (Default: false) |
csvOptions/writeBOM | Set to true if you want the first character written to the stream to be a utf-8 BOM character. (Default: false) |
Sample:
{
"id": "mysql_sample",
"command": "SELECT * FROM USERS",
"csvFileExport": "@GV(WORK_DIR)/users.csv",
"csvOptions": {
"delimiter": ";",
"quote": "\""
}
}
JSON Format
Sample:
{
"id": "mysql_sample",
"command": "SELECT * FROM USERS",
"fileExport": "@GV(WORK_DIR)/users.json"
}
For file upload you must indicate the path of the file to be loaded in the localInFile
parameter and in the LOAD DATA LOCAL INFILE
statement you must indicate mystream
. For example:
localInFile
: Plain file path
{
"id": "mysql_sample",
"command": "LOAD DATA LOCAL INFILE 'mystream' INTO TABLE DBSAMPLE.TABLESAMPLE FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'",
"localInFile": "/sample.csv"
}
PROCESS_EXEC_MSG_OUTPUT
: MySQL output message.PROCESS_EXEC_ERR_OUTPUT
: Error output message.
PROCESS_EXEC_DATA_OUTPUT
: MySQL query output data.PROCESS_EXEC_DB_COUNTROWS
: MySQL query count rows.PROCESS_EXEC_DB_FIRSTROW
: MySQL query first row data.PROCESS_EXEC_DB_FIRSTROW_[FILED_NAME]
: MySQL first row field data.
PROCESS_EXEC_DB_FIELDCOUNT
: MySQL field count.PROCESS_EXEC_DB_AFFECTEDROWS
: MySQL affected rows count.PROCESS_EXEC_DB_CHANGEDROWS
: MySQL changed rows count.PROCESS_EXEC_DB_INSERTID
: MySQL insert ID.PROCESS_EXEC_DB_WARNINGCOUNT
: MySQL warning count.PROCESS_EXEC_DB_MESSAGE
: MySQL message.