diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..f590e3bd --- /dev/null +++ b/404.html @@ -0,0 +1,2311 @@ + + + +
+ + + + + + + + + + + + + + +SkySQL customers should assess the availability requirements of their application and choose an appropriate service tier to meet their objectives. SkySQL customers are on the Foundation Tier unless they have specifically purchased and paid for Power Tier service.
+Tier | +Performance Standard | +
---|---|
SkySQL Foundation Tier | +ā¢ Multi-node configurations will deliver a 99.95% service availability on a per-billing-month basis. | +
ā¢ For example, with this availability target in a 30 day calendar month the maximum service downtime is 21 minutes and 54 seconds. | ++ |
SkySQL Power Tier | +ā¢ Multi-node configurations will deliver a 99.995% service availability on a per-billing-month basis. | +
ā¢ For example, with this availability target in a 30 day calendar month the maximum service downtime is 2 minutes and 11 seconds. | ++ |
Service DowntimeĀ is measured at each SkySQL database endpoint as the total number of full minutes, outside of scheduled downtime for maintenance and upgrades, where continuous attempts to establish a connection within the minute fail as reflected in minute-by-minute logs.
+Monthly Uptime PercentageĀ is calculated on a per-billing-month basis as the total number of minutes in a month, minus the number of minutes of measuredĀ Service DowntimeĀ within the month, divided by the number of minutes in that month. When a service is deployed for only part of a month, it is assumed to be 100% available for the portion of the month that it is not deployed.
+Service CreditĀ is the percentage of the total fees paid by you for a given SkySQL service during the month in which the downtime occurred to be credited if MariaDB approves your claim. The percentage used in calculating Service Credit is dependent on whether the customer is on Foundation Tier or Power Tier, and is dependent on the calculatedĀ Monthly Uptime Percentage.
+Tier | +Monthly Uptime Percentage | +Percentage Applied | +
---|---|---|
Foundation Tier | +Less than 99.95%, but greater than or equal to 99.0% | +10% | +
Foundation Tier | +Less than 99.0% | +25% | +
Power Tier | +Less than 99.995%, but greater than or equal to 99.0% | +10% | +
Power Tier | +Less than 99.0% | +25% | +
MariaDB will grant and process claims, provided the customer has satisfied itsĀ Customer ObligationsĀ and that none of theĀ ExclusionsĀ listed apply to the claim.Ā Service CreditsĀ will be issued only upon request within 60 days of the end of the billing period of the month of impact to service availability, and upon confirmation of outage.Ā Service CreditsĀ will be issued in the form of a monetary credit applied to future use of the service that experienced theĀ Service Downtime.Ā Service CreditsĀ will not be applied to fees for any other SkySQL instance.
+The aggregate maximum number ofĀ Service CreditsĀ to be issued by MariaDB to customers for any and allĀ Service DowntimeĀ that occurs in a single billing month will not exceed 50% of the amount due from the customer for the covered service for the applicable month.
+A customer will forfeit their right to receive aĀ Service CreditĀ unless they:
+Out-of-scope configurations
+TheĀ Performance StandardĀ does not apply to single instance SkySQL service configuration or services in Technical Preview. Customers requiring High Availability should deploy instead in production-ready multi-node service configuration.
+See "Choose a SkySQL Release" for information on SkySQL services in Technical Preview.
+Underlying infrastructure
+Impact to service availability caused by availability or performance of cloud services used to operate SkySQL is excluded. This includes any such outages in Amazon Web Services (AWS) and Amazon Elastic Kubernetes Service (EKS), and Google Cloud Platform (GCP) and Google Kubernetes Engine (GKE).
+Network interruption
+Impact to service availability caused by blocking of network traffic by ISPs, network providers, governments, or third parties is excluded.
+External factors
+Impact to your use of service based on factors outside SkySQL are excluded. This includes periods of downtime for your applications.
+Uncorroborated impacts
+Only impacts to service availability detected atĀ point of measurementĀ are subject when determining the uptime percentage. Service availability impacts measured through any other means, such as application instrumentation, are excluded except as also measured asĀ Service DowntimeĀ by MariaDB.
+Portal access
+Impact to your ability to access or use the SkySQL portal, an interface provided to manage services, is excluded. This includes any component and content linked from the SkySQL portal, including Documentation, the Customer Support portal, Monitoring, and Workload Analysis. These components operate independently from database services and do not impact database availability.
+Resource usage
+Impact to service availability caused by usage of system resources, such as problems caused by excessive workload consumption of CPU, disk I/O, disk capacity, memory, and other system resources, are excluded.
+Clients and connectors
+Impact to service availability caused by the use of unsupported third-party clients and connectors is excluded.
+Non-paying customers
+TheĀ Performance StandardĀ applies only to paying SkySQL customers who are paid-in-full. All other SkySQL customers, including those not paid-in-full and those customers participating in a free or credited service trial, are excluded.
+Customer-directed maintenance
+When a customer directs that MariaDB conduct a maintenance operation on a service, any resulting impact to service availability is excluded.
+Customer-approved maintenance
+When a customer approves MariaDB-recommended maintenance on a service, any resulting impact to service availability is excluded.
+Customer-initiated changes
+When a customer initiates changes to their SkySQL services, e.g., via access to the database or via the SkySQL portal, any resulting impact to service availability is excluded.
+Initial provisioning
+Availability of services during initial provisioning, e.g., before a service becomes online, healthy, and available, is excluded.
+Autonomous features enable automatic scaling in response to changes in workload.
+Auto-scale of nodes enables scaling based on load:
+Auto-scale of storage enables expansion of capacity based on usage.
+Autonomous features can be enabled at time ofĀ service launch. +Autonomous features can be enabled or disabled after launch.
+ +Auto-scaling of nodes can be enabled either at time of service launch or after service launch.
+DuringĀ service launch:
+After service launch,Ā manage Autonomous settings, and enable the desired auto-scaling features.
+Auto-scaling of storage can be enabled either at time of service launch or after service launch.
+DuringĀ Service Launch:
+After service launch,Ā manage Autonomous settings, and enable the desired auto-scaling features.
+To manage Autonomous settings:
+Automatic scaling occurs based on rules.
+Policy | +Condition | +Action | +
---|---|---|
Auto-Scale Disk | +
|
+Upgrade storage to the next available size in 100GB increments. You cannot downgrade storage, the upgrade is irreversible. |
+
Auto-Scale Nodes Out | +
|
+Add new replica or node. Additional nodes will be of the same size and configuration as existing nodes. |
+
Auto-Scale Nodes In | +
|
+Remove replica or node. Node count will not decrease below the initial count set at launch. |
+
Auto-Scale Nodes Up | +
|
+Upgrade all nodes to the next available size. | +
Auto-Scale Nodes Down | +
|
+Downgrade nodes. Node size will not decrease below the initial node size set at launch. |
+
Autonomous actions are not instantaneous.
+Cooldown periods may apply. A cooldown period is the time period after a scaling operation is completed +and before another scaling operation can occur. The cooldown period for storage scaling is 6 hours.
+ + + + + + + + + + + + + +export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
To set up an one-time binarylog backup:
+curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --header "X-API-Key: $API_KEY" \
+ --data "{
+ \"backup_type\": \"full\",
+ \"schedule\": \"once\",
+ \"service_id\": \"$SERVICE_ID\"
+ }"
+
To set up an cron incremental backup:
+ curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules'
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --header "X-API-Key: $API_KEY" \
+ --data "{
+ \"backup_type\": \"binarylog\",
+ \"schedule\": \"0 3 * * *\",
+ \"service_id\": \"$SERVICE_ID\"
+ }"
+
export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
To set up an external storage backup, you need to make the following API call:
+For GCP you need to create an service account key. Please follow the steps from this documentation. Once you have created the service account key you will need to base64 encode it. You can encode it directly from a command line itself. For example the execution of command echo -n 'service-account-key' | base64
will produce something like c2VydmljZS1hY2NvdW50LWtleQ==
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "full",
+ "schedule": "0 2 * * *",
+ "service_id": "dbtgf28044362",
+ "external_storage": {
+ "bucket": {
+ "path": "s3://my_backup_bucket",
+ "credentials": "c2VydmljZS1hY2NvdW50LWtleQ=="
+ }
+ }
+}'
+
The service account key will be in the following format:
+{
+ "type": "service_account",
+ "project_id": "XXXXXXX",
+ "private_key_id": "XXXXXXX",
+ "private_key": "-----BEGIN PRIVATE KEY-----XXXXX-----END PRIVATE KEY-----",
+ "client_email": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX.iam.gserviceaccount.com",
+ "client_id": "XXXXXXX",
+ "auth_uri": "<https://accounts.google.com/o/oauth2/auth>",
+ "token_uri": "<https://oauth2.googleapis.com/token>",
+ "auth_provider_x509_cert_url": "<https://www.googleapis.com/oauth2/v1/certs>",
+ "client_x509_cert_url": "<https://www.googleapis.com/robot/v1/metadata/x509/XXXXXXXXXXXXXX.iam.gserviceaccount.com>",
+ "universe_domain": "googleapis.com"
+}
+
For AWS, you must provide your own credentials. These include the AWS access key associated with an IAM account and the bucket region. For more information about AWS credentials, please refer to the documentation. The required credentials are aws_access_key_id , aws_secret_access_key and region. For example your credentials should look like:
+[default]
+aws_access_key_id = AKIAIOSFODNN7EXAMPLE
+aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+region = us-west-2
+
You should encode your credentials base64 before passing it to the API. You can encode it directly from a command line itself. For example the execution of command echo '[default]\naws_access_key_id = AKIAIOSFODNN7EXAMPLE\naws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\nregion = us-west-2' | base64
will produce the following W2RlZmF1bHRdCmF3c19hY2Nlc3Nfa2V5X2lkID0gQUtJQUlPU0ZPRE5ON0VYQU1QTEUKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ID0gd0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQpyZWdpb24gPSB1cy13ZXN0LTIK
.
+Using encoded credentials you will be able to pass it to the API server. To initiate a new backup to your external storage you need to execute an API call to the backup service:
```bash
+curl --location '<https://api.skysql.com/skybackup/v1/backups/schedules>' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "full",
+ "schedule": "0 2 ** *",
+ "service_id": "dbtgf28044362",
+ "external_storage": {
+ "bucket": {
+ "path": "s3://my_backup_bucket",
+ "credentials": "W2RlZmF1bHRdCmF3c19hY2Nlc3Nfa2V5X2lkID0gQUtJQUlPU0ZPRE5ON0VYQU1QTEUKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ID0gd0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQpyZWdpb24gPSB1cy13ZXN0LTIK"
+ }
+ }
+}'
export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
You can restore your database from the backup located in the default SkySQL managed backup storage. In this case, you need to provide the backup ID when making the restore API call. Here is an example:
+curl --location 'https://api.skysql.com/skybackup/v1/restores' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "key": "eda3b72460c8c0d9d61a7f01b6a22e32:dbtgf28216706:tx-filip-mdb-ms-0",
+ "service_id": "dbtgf28044362"
+}'
+
Inside the service_id parameter of your restore API request, you need to provide the id of the service, where you want to restore your data.
+You can restore your data from external storage. Your external storage bucket data should be created via one of the following tools: mariabackup, mysqldump
. Credentials to external storage access could be fetched from:
For GCP you need to create an service account key. Please follow the steps from this documentation. Once you have created the service account key you will need to base64 encode it. You can encode it directly from a command line itself. For example the execution of command echo -n 'service-account-key' | base64
will produce the following c2VydmljZS1hY2NvdW50LWtleQ==
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "full",
+ "schedule": "0 2 * * *",
+ "service_id": "dbtgf28044362",
+ "external_storage": {
+ "bucket": {
+ "path": "s3://my_backup_bucket",
+ "credentials": "c2VydmljZS1hY2NvdW50LWtleQ=="
+ }
+ }
+}'
+
The service account key will be in the following format:
+{
+ "type": "service_account",
+ "project_id": "XXXXXXX",
+ "private_key_id": "XXXXXXX",
+ "private_key": "-----BEGIN PRIVATE KEY-----XXXXX-----END PRIVATE KEY-----",
+ "client_email": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX.iam.gserviceaccount.com",
+ "client_id": "XXXXXXX",
+ "auth_uri": "<https://accounts.google.com/o/oauth2/auth>",
+ "token_uri": "<https://oauth2.googleapis.com/token>",
+ "auth_provider_x509_cert_url": "<https://www.googleapis.com/oauth2/v1/certs>",
+ "client_x509_cert_url": "<https://www.googleapis.com/robot/v1/metadata/x509/XXXXXXXXXXXXXX.iam.gserviceaccount.com>",
+ "universe_domain": "googleapis.com"
+}
+
For AWS, you must provide your own credentials. These include the AWS access key associated with an IAM account and the bucket region. For more information about AWS credentials, please refer to the documentation. The required credentials are aws_access_key_id , aws_secret_access_key and region. For example your credentials should look like:
+[default]
+aws_access_key_id = AKIAIOSFODNN7EXAMPLE
+aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+region = us-west-2
+
You should encode your credentials base64 before passing it to the API. You can encode it directly from a command line itself. For example the execution of command echo '[default]\naws_access_key_id = AKIAIOSFODNN7EXAMPLE\naws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\nregion = us-west-2' | base64
will produce the following W2RlZmF1bHRdCmF3c19hY2Nlc3Nfa2V5X2lkID0gQUtJQUlPU0ZPRE5ON0VYQU1QTEUKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ID0gd0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQpyZWdpb24gPSB1cy13ZXN0LTIK
.
The following request demonstrates how to restore your data from an external storage:
+{
+ "service_id": "dbtgf28044362",
+ "key": "/backup.tar.gz",
+ "external_source": {
+ "bucket": "gs://my_backup_bucket",
+ "method": "mariabackup",
+ "credentials" "W2RlZmF1bHRdCmF3c19hY2Nlc3Nfa2V5X2lkID0gQUtJQUlPU0ZPRE5ON0VYQU1QTEUKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ID0gd0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQpyZWdpb24gPSB1cy13ZXN0LTIK"
+ }
+}
+
In case your backup data is encrypted you need to pass encryption key as well:
+{
+ "service_id": "dbtgf28044362",
+ "key": "/backup.tar.gz",
+ "external_source": {
+ "bucket": "gs://my_backup_bucket",
+ "method": "mariabackup",
+ "credentials": "W2RlZmF1bHRdCmF3c19hY2Nlc3Nfa2V5X2lkID0gQUtJQUlPU0ZPRE5ON0VYQU1QTEUKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5ID0gd0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQpyZWdpb24gPSB1cy13ZXN0LTIK",
+ "encryption_key": "my_encryption_key"
+ }
+}
+
details>
+export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
curl --location --request DELETE 'https://api.skysql.com/skybackup/v1/restores/12' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
Incremental backups can be taken once you have full backup. Read here for more details.
+To set up an one-time incremental backup, you need to make the following API call:
+curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "incremental",
+ "schedule": "once",
+ "service_id": "dbtgf28044362"
+}'
+
To set up an cron incremental backup, you need to make the following API call:
+curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "incremental",
+ "schedule": "0 3 * * *",
+ "service_id": "dbtgf28044362"
+}'
+
details>
+export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
curl --location 'https://api.skysql.com/skybackup/v1/restores' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
curl --location 'https://api.skysql.com/skybackup/v1/restores/12' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
[
+ {
+ "id": 12,
+ "service_id": "dbtgf28216706",
+ "bucket": "gs://sky-syst0000-backup-us-84e9d84ecf265a/orgpxw1x",
+ "key": "eda3b72460c8c0d9d61a7f01b6a22e32:dbtgf28216706:tx-filip-mdb-ms-0",
+ "type": "physical",
+ "status": "Running",
+ "message": "server is not-ready"
+ }
+]
+
[
+ {
+ "id": 13,
+ "service_id": "dbtgf28216706",
+ "bucket": "gs://sky-syst0000-backup-us-84e9d84ecf265a/orgpxw1x",
+ "key": "dda9b72460c9c0d9d61a7f01b6a33e39:dbtgf28216706:tx-filip-mdb-ms-0",
+ "type": "physical",
+ "status": "Succeeded",
+ "message": "Restore has succeeded!"
+ }
+]
+
export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "dump",
+ "schedule": "once",
+ "service_id": "dbtgf28044362"
+}'
+
To set up an cron Logical(dump) backup, you need to make the following API call:
+curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "dump",
+ "schedule": "0 3 * * *",
+ "service_id": "dbtgf28044362"
+}'
+
Regular and reliable backups are essential to successful recovery of mission critical applications.Ā MariaDB Enterprise ServerĀ backup and restore operations are performed usingĀ MariaDB Enterprise Backup, anĀ enterprise-buildĀ ofĀ MariaDB Backup.
+MariaDB Enterprise BackupĀ is compatible with MariaDB Enterprise Server 10.2, 10.3, 10.4, 10.5, and 10.6.
+MariaDB Enterprise Backup creates a file-level backup of data from the MariaDB Enterprise Server data directory. This backup includesĀ temporal data, and the encrypted and unencrypted tablespaces of supported storage engines (e.g.,Ā InnoDB,Ā MyRocks,Ā Aria).
+MariaDB Enterprise Server implements:
+Backup support is specific to storage engines. All supported storage engines enable full backup. The InnoDB storage engine additionally supports incremental backup.
+A feature of MariaDB Enterprise Backup and MariaDB Enterprise Server, non-blocking backups minimize workload impact during backups. When MariaDB Enterprise Backup connects to MariaDB Enterprise Server, staging operations are initiated to protect data during read.
+Non-blocking backup functionality differs from historical backup functionality in the following ways:
+FLUSHĀ TABLESĀ WITHĀ READĀ LOCK
, which closed open tables and only allowed tables to be reopened with a read lock during the duration of backups.MariaDB Enterprise Backup creates complete or incremental backups of MariaDB Enterprise Server data, and is also used to restore data from backups produced using MariaDB Enterprise Backup.
+Full backups produced using MariaDB Enterprise Server are not initially point-in-time consistent, and an attempt to restore from a raw full backup will cause InnoDB to crash to protect the data.
+Incremental backups produced using MariaDB Enterprise Backup contain only the changes since the last backup and cannot be used standalone to perform a restore.
+To restore from a backup, you first need to prepare the backup for point-in-time consistency using theĀ --prepare
Ā command:
-prepare
Ā command on aĀ full backupĀ synchronizes the tablespaces, ensuring that they are point-in-time consistent and ready for use in recovery.-prepare
Ā command on anĀ incremental backupĀ synchronizes the tablespaces and also applies the updated data into the previous full backup, making it a complete backup ready for use in recovery.-prepare
Ā command on data that is to be used for aĀ partial restoreĀ (when restoring only one or more selected tables) requires that you also use theĀ -export
Ā option to create the necessaryĀ .cfg
Ā files to use in recovery.When MariaDB Enterprise Backup restores from a backup, it copies or moves the backup files into the MariaDB Enterprise Server data directory, as defined by theĀ datadir
Ā system variable.
For MariaDB Enterprise Backup to safely restore data from full and incremental backups, the data directory must be empty. One way to achieve this is to move the data directory aside to a unique directory name:
+/var/lib/mysql-2020-01-01
)Ā ORĀ remove the old data directory (depending on how much space you have available).mkdirĀ /var/lib/mysql
).chownĀ -RĀ mysql:mysqlĀ /var/lib/mysql
).When MariaDB Enterprise Backup performs a backup operation, it not only copies files from the data directory but also connects to the running MariaDB Enterprise Server.
+This connection to MariaDB Enterprise Server is used to manage locks and backup staging that prevent the Server from writing to a file while being read for a backup.
+MariaDB Enterprise Backup establishes this connection based on the user credentials specified with theĀ --user
Ā andĀ --password
Ā options when performing a backup.
It is recommended that a dedicated user be created and authorized to perform backups.
+MariaDB Enterprise Backup 10.5 and later requires this user to have theĀ RELOAD
,Ā PROCESS
,Ā LOCKĀ TABLES
, andĀ BINLOGĀ MONITOR
Ā privileges. (TheĀ BINLOG MONITORĀ privilege replaced theĀ REPLICATIONĀ CLIENT
Ā privilege in MariaDB Enterprise Server 10.5.):
**CREATE** **USER** 'mariabackup'@'localhost'IDENTIFIED **BY** 'mbu_passwd'**;GRANT** RELOAD**,** PROCESS**,** **LOCK** TABLES**,** BINLOG MONITOR**ON** ***.*****TO** 'mariabackup'@'localhost'**;**
In the above example, MariaDB Enterprise Backup would run on the local system that runs MariaDB Enterprise Server. Where backups may be run against a remote server, the user authentication and authorization should be adjusted.
+While MariaDB Enterprise Backup requires a user for backup operations, no user is required for restore operations since restores occur while MariaDB Enterprise Server is not running.
+MariaDB Enterprise Backup 10.4 and earlier requires this user to have theĀ RELOAD
,Ā PROCESS
,Ā LOCKĀ TABLES
, andĀ REPLICATIONĀ CLIENT
Ā privileges. (TheĀ BINLOG MONITORĀ privilege replaced theĀ REPLICATIONĀ CLIENT
Ā privilege in MariaDB Enterprise Server 10.5.):
**CREATE** **USER** 'mariabackup'@'localhost'IDENTIFIED **BY** 'mbu_passwd'**;GRANT** RELOAD**,** PROCESS**,** **LOCK** TABLES**,** REPLICATION CLIENT**ON** ***.*****TO** 'mariabackup'@'localhost'**;**
In the above example, MariaDB Enterprise Backup would run on the local system that runs MariaDB Enterprise Server. Where backups may be run against a remote server, the user authentication and authorization should be adjusted.
+While MariaDB Enterprise Backup requires a user for backup operations, no user is required for restore operations since restores occur while MariaDB Enterprise Server is not running.
+Full backups performed with MariaDB Enterprise Backup contain all table data present in the database.
+When performing a full backup, MariaDB Enterprise Backup makes a file-level copy of the MariaDB Enterprise Server data directory. This backup omits log data such as the binary logs (binlog), error logs, general query logs, and slow query logs.
+When you perform a full backup, MariaDB Enterprise Backup writes the backup to theĀ --target-dir
Ā path. The directory must be empty or non-existent and the operating system user account must have permission to write to that directory. A database user account is required to perform the backup.
The version ofĀ mariabackup
Ā orĀ mariadb-backup
Ā should be the same version as the MariaDB Enterprise Server version. When the version does not match the server version, errors can sometimes occur, or the backup can sometimes be unusable.
To create a backup, executeĀ mariabackup
Ā orĀ mariadb-backup
Ā with theĀ [--backup](https://mariadb.com/docs/server/ref/mdb/cli/mariadb-backup/backup/)
Ā option, and provide the database user account credentials using theĀ [--user](https://mariadb.com/docs/server/ref/mdb/cli/mariadb-backup/user/)
Ā andĀ [--password](https://mariadb.com/docs/server/ref/mdb/cli/mariadb-backup/password/)
Ā options:
$ sudo mariabackup --backup \ --target-dir=/data/backups/full \ --user=mariabackup \ --password=mbu_passwd
Subsequent to the above example, the backup is now available in the designatedĀ --target-dir
Ā path.
A raw full backup is notĀ point-in-time consistentĀ and must be prepared before it can be used for a restore. The backup can be prepared any time after the backup is created and before the backup is restored. However, MariaDB recommends preparing a backup immediately after taking the backup to ensure that the backup is consistent.
+The backup should be prepared with the same version of MariaDB Enterprise Backup that was used to create the backup.
+To prepare the backup, executeĀ mariabackup
Ā orĀ mariadb-backup
Ā with theĀ [--prepare](https://mariadb.com/docs/server/ref/mdb/cli/mariadb-backup/prepare/)
Ā option:
$ sudo mariabackup --prepare \ --use-memory=34359738368 \ --target-dir=/data/backups/full
For best performance, theĀ [--use-memory](https://mariadb.com/docs/server/ref/mdb/cli/mariadb-backup/use-memory/)
Ā option should be set to the server'sĀ [innodb_buffer_pool_size](https://mariadb.com/docs/server/ref/mdb/system-variables/innodb_buffer_pool_size/)
Ā value.
Once a full backup has beenĀ preparedĀ to be point-in-time consistent, MariaDB Enterprise Backup is used to copy backup data to the MariaDB Enterprise Server data directory.
+To restore from a full backup:
+Restore from the "full" directory using theĀ -copy-back
Ā option:
$ sudo mariabackup --copy-back --target-dir=/data/backups/full
MariaDB Enterprise Backup writes to the data directory as the current user, which can be changed usingĀ sudo
. To confirm that restored files are properly owned by the user that runs MariaDB Enterprise Server, run a command like this (adapted for the correct user/group):
$ sudo chown -R mysql:mysql /var/lib/mysql
Once this is done, start MariaDB Enterprise Server:
+$ sudo systemctl start mariadb
When the Server starts, it works from the restored data directory.
+Full backups of large data-sets can be time-consuming and resource-intensive. MariaDB Enterprise Backup supports the use of incremental backups to minimize this impact.
+While full backups are resource-intensive at time of backup, the resource burden around incremental backups occurs when preparing for restore. First, the full backup is prepared for restore, then each incremental backup is applied.
+When you perform an incremental backup, MariaDB Enterprise Backup compares a previous full or incremental backup to what it finds on MariaDB Enterprise Server. It then creates a new backup containing the incremental changes.
+Incremental backup is supported for InnoDB tables. Tables using other storage engines receive full backups even during incremental backup operations.
+To increment a full backup, use theĀ --incremental-basedir
Ā option to indicate the path to the full backup and theĀ --target-dir
Ā option to indicate where you want to write the incremental backup:
$ sudo mariabackup --backup \ --incremental-basedir=/data/backups/full \ --target-dir=/data/backups/inc1 \ --user=mariabackup \ --password=mbu_passwd
In this example, MariaDB Enterprise Backup reads theĀ /data/backups/full
Ā directory, and MariaDB Enterprise Server then creates an incremental backup in theĀ /data/backups/inc1
Ā directory.
An incremental backup must be applied to a prepared full backup before it can be used in a restore operation. If you have multiple full backups to choose from, pick the nearest full backup prior to the incremental backup that you want to restore. You may also want to back up your full-backup directory, as it will be modified by the updates in the incremental data.
+If your full backup directory is not yet prepared, run this to make it consistent:
+$ sudo mariabackup --prepare --target-dir=/data/backups/full
Then, using the prepared full backup, apply the first incremental backup's data to the full backup in an incremental preparation step:
+$ sudo mariabackup --prepare \ --target-dir=/data/backups/full \ --incremental-dir=/data/backups/inc1
Once the incremental backup has been applied to the full backup, the full backup directory contains the changes from the incremental backup (that is, theĀ inc1/
Ā directory). Feel free to removeĀ inc1/
Ā to save disk space.
Once you have prepared the full backup directory with all the incremental changes you need (as described above), stop the MariaDB Enterprise Server,Ā emptyĀ its data directory, and restore from the original full backup directory using theĀ --copy-back
Ā option:
$ sudo mariabackup --copy-back --target-dir=/data/backups/full
MariaDB Enterprise Backup writes files into the data directory using either the current user or root (in the case of a sudo operation), which may be different from the system user that runs the database. Run the following to recursively update the ownership of the restored files and directories:
+$ sudo chown -R mysql:mysql /var/lib/mysql
Then, start MariaDB Enterprise Server. When the Server starts, it works from the restored data directory.
+In a partial backup, MariaDB Enterprise Backup copies a specified subset of tablespaces from the MariaDB Enterprise Server data directory. Partial backups are useful in establishing a higher frequency of backups on specific data, at the expense of increased recovery complexity. In selecting tablespaces for a partial backup, please consider referential integrity.
+Command-line options can be used to narrow the set of databases or tables to be included within a backup:
+Option | +Description | +
---|---|
--databases | +List of databases to include | +
--databases-exclude | +List of databases to omit from the backup | +
--databases-file | +Path to file listing the databases to include | +
--tables | +List of tables to include | +
--tables-exclude | +List of tables to exclude | +
--tables-file | +Path to file listing the tables to include | +
For example, you may wish to produce a partial backup, which excludes a specific database:
+$ sudo mariabackup --backup \ --target-dir=/data/backups/part \ --user=mariabackup \ --password=mbu_passwd \ --database-exclude=test
Partial backups can also be incremental:
+$ sudo mariabackup --backup \ --incremental-basedir=/data/backups/part \ --target-dir=/data/backups/part_inc1 \ --user=mariabackup \ --password=mbu_passwd \ --database-exclude=test
As with full and incremental backups, partial backups are not point-in-time consistent. A partial backup must be prepared before it can be used for recovery.
+A partial restore can be performed from a full backup or partial backup.
+The preparation step for either partial or full backup restoration requires the use of transportable tablespaces for InnoDB. As such, each prepare operation requires theĀ --export
Ā option:
$ sudo mariabackup --prepare --export --target-dir=/data/backups/part
When using a partial incremental backup for restore, the incremental data must be applied to its prior partial backup data before its data is complete. If performing partial incremental backups, run the prepare statement again to apply the incremental changes onto the partial backup that served as the base.
+$ sudo mariabackup --prepare --export \ --target-dir=/data/backups/part \ --incremental-dir=/data/backups/part_inc1
Unlike full and incremental backups, you cannot restore partial backups directly using MariaDB Enterprise Backup. Further, as a partial backup does not contain a complete data directory, you cannot restore MariaDB Enterprise Server to a startable state solely with a partial backup.
+To restore from a partial backup, you need to prepare a table on the MariaDB Enterprise Server, then manually copy the files into the data directory.
+The details of the restore procedure depend on the characteristics of the table:
+As partial restores are performed while the server is running, not stopped, care should be taken to prevent production workloads during restore activity.
+Note
+You can also use data from a full backup in a partial restore operation if you have prepared the data using theĀ --export
Ā option as described above.
To restore a non-partitioned table from a backup, first create a new table on MariaDB Enterprise Server to receive the restored data. It should match the specifications of the table you're restoring.
+Be extra careful if the backup data is from a server with a different version than the restore server, as some differences (such as a differingĀ ROW_FORMAT
) can cause an unexpected result.
Create an empty table for the data being restored:
+**CREATE** **TABLE** test**.**address_book **(** id INT **PRIMARY** **KEY** AUTO_INCREMENT**,** name VARCHAR**(**255**),** email VARCHAR**(**255**));**
Modify the table to discard the tablespace:
+**ALTER** **TABLE** test**.**address_book DISCARD TABLESPACE**;**
You can copy (or move) the files for the table from the backup to the data directory:
+$ sudo cp /data/backups/part_inc1/test/address_book.* /var/lib/mysql/test
Use a wildcard to include both theĀ .ibd
Ā andĀ .cfg
Ā files. Then, change the owner to the system user running MariaDB Enterprise Server:
$ sudo chown mysql:mysql /var/lib/mysql/test/address_book.*
Lastly, import the new tablespace:
+**ALTER** **TABLE** test**.**address_book IMPORT TABLESPACE**;**
MariaDB Enterprise Server looks in the data directory for the tablespace you copied in, then imports it for use. If the table is encrypted, it also looks for the encryption key with the relevant key ID that the table data specifies.
+Repeat this step for every table you wish to restore.
+Restoring a partitioned table from a backup requires a few extra steps compared to restoring a non-partitioned table.
+To restore a partitioned table from a backup, first create a new table on MariaDB Enterprise Server to receive the restored data. It should match the specifications of the table you're restoring, including the partition specification.
+Be extra careful if the backup data is from a server with a different version than the restore server, as some differences (such as a differingĀ ROW_FORMAT
) can cause an unexpected result.
Create an empty table for the data being restored:
+**CREATE** **TABLE** test**.**students **(** id INT **NOT** **NULL** AUTO_INCREMENT**,** name VARCHAR**(**255**),** email VARCHAR**(**255**),** graduating_year **YEAR,** **PRIMARY** **KEY** **(**id**,** graduating_year**))** ENGINE = InnoDBPARTITION **BY** RANGE **(**graduating_year**)** **(** PARTITION p0 **VALUES** **LESS** **THAN** **(**2019**),** PARTITION p1 **VALUES** **LESS** **THAN** **MAXVALUE);**
Then create a second empty table matching the column specification, but without partitions. This will be your working table:
+**CREATE** **TABLE** test**.**students_work **ASSELECT** * **FROM** test**.**students **WHERE** **NULL;**
For each partition you want to restore, discard the working table's tablespace:
+**ALTER** **TABLE** test**.**students_work DISCARD TABLESPACE**;**
Then, copy the table files from the backup, using the new name:
+$ sudo cp /data/backups/part_inc1/test/students.ibd /var/lib/mysql/test/students_work.ibd
+$ sudo cp /data/backups/part_inc1/test/students.cfg /var/lib/mysql/test/students_work.cfg
Change the owner to that of the user running MariaDB Enterprise Server:
+$ sudo chown mysql:mysql /var/lib/mysql/test/students_work.*
Import the copied tablespace:
+**ALTER** **TABLE** test**.**students_work IMPORT TABLESPACE**;**
Lastly, exchange the partition, copying the tablespace from the working table into the partition file for the target table:
+**ALTER** **TABLE** test**.**students EXCHANGE PARTITION p0 **WITH** **TABLE** test**.**students_work**;**
Repeat the above process for each partition until you have them all exchanged into the target table. Then delete the working table, as it's no longer necessary:
+**DROP** **TABLE** test**.**students_work**;**
This restores a partitioned table.
+When restoring a table with a full-text search (FTS) index, InnoDB may throw a schema mismatch error.
+In this case, to restore the table, it is recommended to:
+.cfg
Ā file.For example, to restore tableĀ t1
Ā with FTS index from databaseĀ db1
:
In the MariaDB shell, drop the table you are going to restore:
+**DROP** **TABLE** **IF** **EXISTS** db1**.**t1**;**
Create an empty table for the data being restored:
+**CREATE** **TABLE** db1**.**t1**(**f1 CHAR**(**10**))** ENGINE=INNODB**;**
Modify the table to discard the tablespace:
+**ALTER** **TABLE** db1**.**t1 DISCARD TABLESPACE**;**
In the operating system shell, copy the table files from the backup to the data directory of the corresponding database:
+$ sudo cp /data/backups/part/db1/t1.* /var/lib/mysql/db1
Remove theĀ .cfg
Ā file from the data directory:
$ sudo rm /var/lib/mysql/db1/t1.cfg
Change the owner of the newly copied files to the system user running MariaDB Enterprise Server:
+$ sudo chown mysql:mysql /var/lib/mysql/db1/t1.*
In the MariaDB shell, import the copied tablespace:
+**ALTER** **TABLE** db1**.**t1 IMPORT TABLESPACE**;**
Verify that the data has been successfully restored:
+**SELECT** * **FROM** db1**.**t1**;**
+--------+
+| f1 |
++--------+
+| ABC123 |
++--------+
Add the necessary secondary indexes:
+**ALTER** **TABLE** db1**.**t1 **FORCE,** **ADD** FULLTEXT **INDEX** f_idx**(**f1**);**
The table is now fully restored:
+**SHOW** **CREATE** **TABLE** db1**.**t1**\G**
*************************** 1. row ***************************
+ Table: t1
+Create Table: CREATE TABLE `t1` (
+ `f1` char(10) DEFAULT NULL,
+ FULLTEXT KEY `f_idx` (`f1`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
+
Recovering from a backup restores the data directory at a specific point-in-time, but it does not restore the binary log. In a point-in-time recovery, you begin by restoring the data directory from a full or incremental backup, then use theĀ mysqlbinlog
Ā utility to recover the binary log data to a specific point in time.
First, prepare the backup as you normally would for aĀ fullĀ orĀ incrementalĀ backup:
+$ sudo mariabackup --prepare --target-dir=/data/backups/full
When MariaDB Enterprise Backup runs on a MariaDB Enterprise Server where binary logs is enabled, it stores binary log information in theĀ xtrabackup_binlog_info
Ā file. Consult this file to find the name of the binary log position to use. In the following example, the log position isĀ 321
.
`$ sudo cat /data/backups/full/xtraback_binlog_info
+mariadb-node4.00001 321`
+Update the configuration file to use a new data directory.
+**[mysqld]**datadir=/var/lib/mysql_new
Using MariaDB Enterprise Backup, restore from the backup to the new data directory:
+$ sudo mariabackup --copy-back --target-dir=/data/backups/full
Then change the owner to the MariaDB Enterprise Server system user:
+$ sudo chown -R mysql:mysql /var/lib/mysql_new
Start MariaDB Enterprise Server:
+$ sudo systemctl start mariadb
Using the binary log file in the old data directory, the start position in theĀ xtrabackup_binlog_info
Ā file, the date and time you want to restore to, and theĀ mysqlbinlog
Ā utility to create an SQL file with the binary log changes:
$ mysqlbinlog --start-position=321 \ --stop-datetime="2019-06-28 12:00:00" \ /var/lib/mysql/mariadb-node4.00001 \ > mariadb-binlog.sql
Lastly, run the binary log SQL to restore the databases:
+$ mysql -u root -p < mariadb-binlog.sql
export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
curl --location '<https://api.skysql.com/skybackup/v1/backups/schedules>' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
To get backup schedules for specific service :
+curl --location '<https://api.skysql.com/skybackup/v1/backups/schedules?service_id=dbtgf28044362>' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
To get specific backup schedule by id :
+curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules/200' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
In the following example, we update the backup schedule to 9 AM UTC. Remember, you cannot change the schedules for one-time backups. +To update specific backup schedule you need to make the following API call:
+curl --location --request PATCH '<https://api.skysql.com/skybackup/v1/backups/schedules/215>' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "schedule": "0 9 ** *"
+}'
+
To delete a backup schedule you need to provide the backup schedule id. Example of the api call below:
+curl --location --request DELETE 'https://api.skysql.com/skybackup/v1/backups/schedules/215' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
The following API illustrates how to get the available backups and status of backup jobs .
+Here is an example to fetch all the available Backups in your org:
+curl --location 'https://api.skysql.com/skybackup/v1/backups' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
To list all backups available for your service :
+curl --location 'https://api.skysql.com/skybackup/v1/backups?service_id=dbtgf28216706' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}'
+
The typical response of either of two calls should look like:
+{
+ "backups": [
+ {
+ "id": "eda3b72460c8c0d9d61a7f01b6a22e32:dbtgf28216706:tx-filip-mdb-ms-0",
+ "service_id": "dbtgf28216706",
+ "type": "full",
+ "method": "skybucket",
+ "server_pod": "tx-filip-mdb-ms-0",
+ "backup_size": 5327326,
+ "reference_full_backup": "",
+ "point_in_time": "2024-03-26 17:18:21",
+ "start_time": "2024-03-26T17:18:57Z",
+ "end_time": "2024-03-26T17:19:01Z",
+ "status": "Succeeded"
+ }
+ ],
+ "backups_count": 1,
+ "pages_count": 1
+}
+
++ + + + + + + + + + + + + +The ** Backup id is the most important part of this data as you need to provide it in the restore api call** to schedule restore execution.
+
export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --header "X-API-Key: $API_KEY" \
+ --data "{
+ \"backup_type\": \"full\",
+ \"schedule\": \"once\",
+ \"service_id\": \"$SERVICE_ID\"
+ }"
+
+ curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules'
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --header "X-API-Key: $API_KEY" \
+ --data "{
+ \"backup_type\": \"full\",
+ \"schedule\": \"0 3 * * *\",
+ \"service_id\": \"$SERVICE_ID\"
+ }"
+
+export API_KEY='... key data ...'
+
curl --request GET 'https://api.skysql.com/skybackup/v1/backups/schedules' --header "X-API-Key: ${API_KEY}"
+
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --header "X-API-Key: $API_KEY" \
+ --data "{
+ \"backup_type\": \"snapshot\",
+ \"schedule\": \"once\",
+ \"service_id\": \"$SERVICE_ID\"
+ }"
+
+ curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules'
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --header "X-API-Key: $API_KEY" \
+ --data "{
+ \"backup_type\": \"snapshot\",
+ \"schedule\": \"0 3 * * *\",
+ \"service_id\": \"$SERVICE_ID\"
+ }"
+
+++While daily automated backups are provided, using the SkySQL Backup and Restore API may incur nominal additional charges. For more information, please contact info@skysql.com."
+
The following documentation describes the API for the SkySQL Backup Service. This can be used directly with any HTTP client.
+The Backup and Restore service provides SkySQL customers with a comprehensive list of features through a secure API and a user-friendly portal. The service extends the automated nightly backups with a number of self-service features. Users can automatically create and store backups of their databases to ensure additional data safety or provide a robust disaster recovery solution. The backups are stored on reliable and secure cloud storage, ensuring they are readily available when needed. The backup process is seamless and does not affect the database performance. SkySQL also offers the flexibility to customize backup schedule according to your specific needs. Backups on large data sets can take time.
+You instruct the creation of a backup using a "schedule". You can either schedule a one-time backup (schedule now) or set up automatic backups using a cron schedule. A backup schedule results in a backup job which can be tracked using the status API. We support the following types of backups: snapshot, full (physical), incremental (physical), binary log, and dump (logical).
+SkySQL supports database snapshot backups either on-demand or according to a pre-established schedule. +Below are examples of how to schedule a snapshot backup using the SkySQL API.
+Important: Database snapshots are deleted immediately upon service deletion.
+SkySQL supports database physical backups either on-demand or according to a pre-established schedule. Below are examples of how to schedule a physical backup using the SkySQL API.
+SkySQL supports database incremental backups either on-demand or according to a pre-established schedule. +Below are examples of how to schedule an incremental backup using the SkySQL API.
+SkySQL supports database logical backups either on-demand or according to a pre-established schedule. Below are examples of how to schedule a logical backup using the SkySQL API.
+WARNING
+++Restoring from a backup will erase all data in your target DB service. If you are uncertain, it is advisable to first create a backup of the DB service before initiating the restore process. Consider restoring to a new database instance as a preferred approach. The database being restored will be temporarily stopped during the restoration. You will need to restart it afterward.
+
Users can instruct the restore of their SkySQL Database from their own SkySQL storage or from an external storage they own. The restore API provides options for listing, adding, and deleting a scheduled restore operation.
+SkySQL Users can fetch their already existing database restore schedules using the backup API. Check the provided API examples for details.
+SkySQL Users can restore their databases using their own SkySQL managed backup storage or using an external storage they own. Check the provided service API examples for details.
+SkySQL Users can delete their already defined database restore schedules with the provided service API.
+Billing is associated with aĀ SkySQL ID.
+For pricing information see "Pricing" .
+From theĀ Portal, you can access a current billing and usage summary:
+Current charges, prior billing date, and next invoice date are shown.
+Usage information can be shown by service or by resource.
+Click the resource name or service name to expand the view.
+ +Billing - Current Usage
+From theĀ Portal, you can access prior invoices:
+Maintenance windows are a scheduled period of time when hardware, network, software, or configuration changes can be applied, and processes can be restarted.
+For Foundation Tier customers, maintenance windows are predefined by region.
+For Power Tier customers, maintenance windows are customer-selected.
+Notice is provided to customers in advance of maintenance. SkyDBA customers are asked to confirm maintenance prior to scheduled start.
+For Foundation Tier, to view the maintenance widown, Go to "Your services" and then "Details".
+On Power Tier, to show the current maintenance window for a service:
+Go to "Your services" page (top choice in left navigation).
+Click the ">" to the left of the desired service.
+The current maintenance window is shown in the "Customization" section.
+A maintenance window selection applies to all services within a region.
+For Power Tier customers, maintenance windows are customer-selected:
+A menu of supported maintenance windows is presented at time of service launch.
+Maintenance windows may be changed after service launch, once a service reaches "Healthy" state.
+Maintenance windows can be updated at time of service launch, or on-demand:
+Go to "Your services" page (top choice in left navigation).
+Click the ">" to the left of the desired service.
+The current maintenance window is shown in the "Customization" section.
+Click on the triangle at the right of the "Maintenance window" to see a drop down display of available maintenance windows.
+Select the desired maintenance window and click on the "Save" button. This change will be applied to all services in the region.
+MariaDB MaxScale serves as the load balancer in certain SkySQL topologies.
+SkySQL supports MaxScale Redundancy as an option at time of launch:
+This feature is not enabled by default. By default, topologies that use MaxScale contain only one MaxScale node.
+When MaxScale Redundancy is selected, MaxScale nodes are deployed in a highly available (HA) active-active configuration behind round robin load balancing.
+When MaxScale Redundancy is enabled, MaxScale instance size can be selected.
+MaxScale Redundancy is available to Power Tier customers.
+Launch a SkySQL service:
+Check the "Enable MaxScale Redundancy" checkbox.
+Choose the MaxScale instance size
+SkySQL pricing information is shown at time of service launch.
+Pricing shown within the SkySQL interface is an estimate of the cost of using SkySQL services based on your specified usage parameters. Pricing information is shown at time of service launch and subsequently as estimated charges.
+The cost shown is not a quote and does not guarantee the cost for your actual use of SkySQL services.
+The cost estimate may vary from your actual costs for several reasons, including:
+Actual usage: Your actual cost will be based on your actual use of the services, not the estimate.
+Region: The prices for SkySQL services may vary between regions. Using a different region than the one selected may affect the results.
+Price changes: On-demand pricing for most services may change over time. If you buy services on-demand, your bill may be less or more than estimated based on the current on-demand rates.
+Taxes: The estimate does not include any taxes that may be applied to your purchase of the services.
+Time frame assumptions: On-demand monthly pricing assumes that your instance or node runs for a 730 hour month. The estimate does not account for leap years, which add one additional day (24 hours).
+Promotional credits and discounts: The estimate does not account for promotional credits or other discounts.
+Monthly billing period: MariaDB bills on a monthly basis. If your utilization starts mid-month, you will only see a portion of an actual month's full costs on your invoice.
+Rounding: Estimated fees include mathematical rounding of pricing data.
+Scale fabric: Scale fabric costs represent the additional network, host, and backup infrastructure needed to support multi-node topologies. In addition to multi-node topologies, this cost also applies to the Distributed Transactions topology when deployed with 1 Xpand node, since infrastructure is present to support scale-up to a multi-node configuration.
+Previous services: The estimate is only for the service being launched and does not account for other current or previous charges to the SkySQL account.
+Cross-Region Replicas: The estimate does not include cross-region replicas.
+Currency: Estimates are provided in either US dollars or Euros depending on your account address country. Your actual cost will be based on US dollar pricing with a conversion to Euros depending on your account address country.
+Note
+COMING SOON ā¦ a complete feature checklist of both the tiers ... +A full description of billing and invoicing (FAQ covers a bit)
+Power Tier is a premium service offering who have the most critical requirements for uptime, availability, performance, and support.
+By default, any new signed up users are in the āFoundation Tierā. To upgrade to Power Tier,Ā simply click the āUpgradeā button - SkySQL support will contact you and start the upgrade process. You can also directly reach out to SkySQL Support.
+Features available to SkySQL Power Tier customers include:
+MariaDB Connector/J enables Java applications to connect to SkySQL using a native MariaDB connector.
+To download the JAR file manually:
+Maven can install MariaDB Connector/J as a dependency of your application during build. Set theĀ <version>
Ā element to correspond to the version of MariaDB Connector/J that you would like to install.
To use Maven to install MariaDB Connector/J, add the dependency to yourĀ pom.xml
Ā file:
<dependency>
+ <groupId>org.mariadb.jdbc</groupId>
+ <artifactId>mariadb-java-client</artifactId>
+ <version>3.4.1</version>
+</dependency>
+
For additional information on available releases, see the "Release Notes for MariaDB Connector/J".
+Depending on the features you plan to use, you may need to add some additional dependencies toĀ pom.xml
.
If you downloaded the connector JAR, place it on your CLASSPATH
+export CLASSPATH="/path/to/application:/path/to/mariadb-java-client-3.4.1.jar"
+
In MariaDB Connector/J 3.0, TLS is enabled for connections to SkySQL using theĀ sslMode
Ā parameter.
import java.sql.*;
+import java.util.Properties;
+
+public class App {
+ public static void main(String[] argv) {
+ Properties connConfig = new Properties();
+ connConfig.setProperty("user", "db_user");
+ connConfig.setProperty("password", "db_user_password");
+ **connConfig.setProperty("sslMode", "verify-full");**
+
+ try (Connection conn = DriverManager.getConnection("jdbc:mariadb://HOST:PORT", connConfig)) {
+ try (Statement stmt = conn.createStatement()) {
+ try (ResultSet contact_list = stmt.executeQuery("SELECT first_name, last_name, email FROM test.contacts")) {
+ while (contact_list.next()) {
+ System.out.println(String.format("%s %s <%s>",
+ contact_list.getString("first_name"),
+ contact_list.getString("last_name"),
+ contact_list.getString("email")));
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
+
In MariaDB Connector/J 2.7 and before, TLS is enabled for connections to SkySQL using theĀ useSsl
Ā parameter.
import java.sql.*;
+import java.util.Properties;
+
+public class App {
+ public static void main(String[] argv) {
+ Properties connConfig = new Properties();
+ connConfig.setProperty("user", "db_user");
+ connConfig.setProperty("password", "db_user_password");
+ **connConfig.setProperty("useSsl", "true");**
+
+ try (Connection conn = DriverManager.getConnection("jdbc:mariadb://HOST:PORT", connConfig)) {
+ try (Statement stmt = conn.createStatement()) {
+ try (ResultSet contact_list = stmt.executeQuery("SELECT first_name, last_name, email FROM test.contacts")) {
+ while (contact_list.next()) {
+ System.out.println(String.format("%s %s <%s>",
+ contact_list.getString("first_name"),
+ contact_list.getString("last_name"),
+ contact_list.getString("email")));
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
+
The NoSQL protocol module allows a MariaDB server or cluster to execute transactions for applications using MongoDB client libraries, transparently converting MongoDB API calls into the equivalent SQL. The MariaDB responses are then converted into the format expected by the MongoDBĀ® client library and application.
+For detailed information on supported commands, see "NoSQL Protocol Module" in MariaDB MaxScale documentation.
+ + +Connect to the NoSQL interface using a MongoDB client library or compatible application.Ā Documentation on official MongoDB librariesĀ is available from MongoDB.
+Documentation on installingĀ mongosh
Ā (the MongoDB Shell)Ā is available from MongoDB.
From the Dashboard, the details needed to connect to your SkySQL service can be seen by clicking on the "CONNECT" button for the desired service.
+The "NoSQL port" is the TCP port used to connect to the NoSQL interface.
+TheĀ firewallĀ must be configured to allowlist the client's IP address or netblock before connections can occur.
+See the "Connecting using Mongosh" section of the Connect page for an exampleĀ mongosh
Ā command-line, authentication instructions, and instructions to change the default password.
Node.js developers can connect to SkySQL through a native MariaDB Connector. Using MariaDB Connector/Node.js you can connect to SkySQL to use and administer databases from within your Node.js application.
+MariaDB Connector/Node.js is usually installed either from the Node.js repository or manually from the source code package.
+To install MariaDB Connector/Node.js from the Node.js repository, use NPM:
+npm install mariadb
+
NPM connects to the Node.js repository and downloads MariaDB Connector/Node.js and all relevant dependencies into theĀ node_modules/
Ā directory.
To download and install the MariaDB Connector/Node.js manually from source code:
+When the source code package finishes downloading, install it with NPM:
+$ npm install mariadb-connector-nodejs-*.tar.gz
NPM untars the download and installs MariaDB Connector/Node.js in theĀ node_modules/
Ā directory.
Node.js developers can use MariaDB Connector/Node.js to establish client connections with SkySQL.
+MariaDB Connector/Node.js provides two different connection implementations: one built on theĀ Promise APIĀ and the other built on the Callback API.
+To use the Callback API, use the following module:
+const** mariadb = require**(**'mariadb/callback'**);
+
createConnection(options)Ā ->Ā Connection
+
Connection
Ā object.
+TheĀ createConnection(options)
Ā function returns aĀ Connection
Ā object.
Determine theĀ connection informationĀ for your SkySQL database service:
+Option | +Description | +
---|---|
host | +The fully Qualified Domain Name from the "Connect" window in SkySQL portal | +
port | +The Read-Write Port or Read-Only Port from the "Connect" window in SkySQL portal | +
user | +The desired username, which might be the default username in the Service Credentials view | +
password | +The user's password, which might be the default password in the Service Credentials view if it was not yet customized | +
database | +Database name to establish a connection to. No default is configured. | +
connectTimeout | +Connection timeout in milliseconds. In Connector/Node.js 2.5.6, the default value changed to 1000. The default value for earlier versions is 10000. | +
rowsAsArray | +A boolean value to indicate whether to return result sets as array instead of the default JSON. Arrays are comparatively faster. | +
The following code example connects using the database and user account created in theĀ example setup:
+const mariadb = require('mariadb/callback');
+
+// Certificate Authority (CA)",
+var serverCert = [fs.readFileSync(process.env.SKYSQL_CA_PEM, "utf8")];
+
+// Declare async function
+function main() {
+ let conn;
+
+ try {
+ conn = mariadb.createConnection({
+ host: "example.skysql.com",
+ port: 5009,
+ ssl: { ca: serverCert },
+ user: "db_user",
+ password: "db_user_password",
+ database: "test",
+ });
+
+ // Use Connection
+ // ...
+ } catch (err) {
+ // Manage Errors
+ console.log("SQL error in establishing a connection: ", err);
+ } finally {
+ // Close Connection
+ if (conn) conn.end(err => {if(err){
+ console.log("SQL error in closing a connection: ", err);}
+ });
+ }
+}
+
+main();
+
try...catch...finally
Ā statement is used for exception handling.connection.end([callback])
Ā function.connection.end([callback])
Ā function to close/end the connection in theĀ finally
Ā block after the queries that are running have completed.end()
Ā function takes a callback function that defines one implicit argument for theĀ Error
Ā object if thrown in closing the connection as argument. If no error is generated in closing a connection theĀ Error
Ā object isĀ null
.Node.js developers can use MariaDB Connector/Node.js to establish client connections with SkySQL.
+MariaDB Connector/Node.js provides two different connection implementations: one built on the Promise API and the other built on theĀ Callback API. Promise is the default.
+To use the Promise API, use theĀ mariadb
Ā module:
const** mariadb = require**(**'mariadb'**);
+
createConnection(options)Ā ->Ā Promise
Ā is the base function used to create aĀ Connection
Ā object.
TheĀ createConnection(options)
Ā returns aĀ Promise
Ā that resolves to aĀ Connection
Ā object if no error occurs, and rejects with anĀ Error
Ā object if an error occurs.
Determine theĀ connection informationĀ for your SkySQL database service:
+Option | +Description | +
---|---|
host | +The fully Qualified Domain Name from the "Connect" window in SkySQL portal | +
port | +The Read-Write Port or Read-Only Port from the "Connect" window in SkySQL portal | +
user | +The desired username, which might be the default username in the Service Credentials view | +
password | +The user's password, which might be the default password in the Service Credentials view if it was not yet customized | +
database | +Database name to establish a connection to. No default is configured. | +
connectTimeout | +Connection timeout in milliseconds. In Connector/Node.js 2.5.6, the default value changed to 1000. The default value for earlier versions is 10000. | +
rowsAsArray | +A boolean value to indicate whether to return result sets as array instead of the default JSON. Arrays are comparatively faster. | +
Create a file namedĀ .env
Ā to store your database credentials:
MDB_HOST = 192.0.2.50
+MDB_PORT = 3306
+MDB_USER = db_user
+MDB_PASS = db_user_password
+MDB_HOST = example.skysql.com
+MDB_PORT = 5001
+MDB_CA_PEM = /path/to/skysql_chain.pem
+MDB_USER = db_user
+MDB_PASS = db_user_password
+
The following code example connectsĀ using the database and user account created inĀ Setup for Examples:
+// Required Modules
+const fs = require("fs");
+const mariadb = require("mariadb");
+require("dotenv").config()
+
+// Certificate Authority (CA)
+const serverCert = [fs.readFileSync(process.env.MDB_CA_PEM, "utf8")];
+
+// Declare async function
+async function main() {
+ let conn;
+
+ try {
+ conn = await mariadb.createConnection({
+ host: process.env.MDB_HOST,
+ port: process.env.MDB_PORT,
+ user: process.env.MDB_USER,
+ password: process.env.MDB_PASS,
+ ssl: { ca: serverCert },
+ database: "test",
+ });
+
+ // Use Connection
+ // ...
+ } catch (err) {
+ // Manage Errors
+ console.log("SQL error in establishing a connection: ", err);
+ } finally {
+ // Close Connection
+ if (conn) conn.close();
+ }
+}
+
+main();
+
mariadb
Ā module using theĀ require()
Ā function.main()
Ā using theĀ async
Ā keyword.await
Ā expressions using theĀ await
Ā keyword.await
Ā expression is the resolved value of theĀ Promise
.main
Ā is arbitrary and does not have special meaning as in some other programming languages.conn
Ā for the connection to be created using aĀ let
Ā statement with the async functionĀ main
.try...catch...finally
Ā statement is used for exception handling.try
Ā block, create a new connection using theĀ mariadb#createConnection(options)
Ā function in the Promise API.catch
Ā block.close()
Ā function.Python developers can use MariaDB Connector/Python to establish client connections with SkySQL.
+Connections are managed using the following Python class:
+Class | +Description | +
---|---|
Connection | +Represents a connection to SkySQL. | +
Connections are created, used, and managed using the following Connection
class functions:
Function | +Description | +
---|---|
connect() | +Establishes a connection to a database server and returns a connection object. | +
cursor() | +Returns a new cursor object for the current connection. | +
change_user() | +Changes the user and default database of the current connection. | +
reconnect() | +Tries to make a connection object active again by reconnecting to the server using the same credentials which were specified in connect() method. | +
close() | +Closes the connection. | +
Determine the connection information for your SkySQL database service:
+connect() parameter | +Where to find it | +
---|---|
user | +Default username in the Service Credentials view, or the username you created | +
passwd | +Default password in the Service Credentials view, the password you set on the default user, or the password for the user you created | +
host | +Fully Qualified Domain Name in the Connection Parameters Portal | +
ssl_verify_cert | +Set to True to support SSL | +
port | +Read-Write Port or Read-Only Port in the Connection Parameters Portal | +
The following code example connects to an example server.
+Examples:
+# Module Import
+import mariadb
+import sys
+
+# Instantiate Connection
+try:
+ conn = mariadb.connect(
+ host="192.0.2.1",
+ port=3306,
+ user="db_user",
+ password="USER_PASSWORD")
+except mariadb.Error as e:
+ print(f"Error connecting to the database: {e}")
+ sys.exit(1)
+
+# Use Connection
+# ...
+
+# Close Connection
+conn.close()
+
# Module Import
+import mariadb
+import sys
+
+# Instantiate Connection
+try:
+ conn = mariadb.connect(
+ host="SKYSQL_SERVICE.mdb0000001.db.skysql.com",
+ port=5009,
+ ssl_verify_cert=True,
+ user="DB00000001",
+ password="USER_PASSWORD")
+except mariadb.Error as e:
+ print(f"Error connecting to the database: {e}")
+ sys.exit(1)
+
+# Use Connection
+# ...
+
+# Close Connection
+conn.close()
+
connect()
function returns an instance of the Connection
class, which is assigned to the conn
variable.connect()
function.close()
method.Instantiating the Connection
class creates a single connection to MariaDB database products. Applications that require multiple connections may benefit from pooling connections.
MariaDB Connector/Python closes the connection as part of the class's destructor, which is executed when an instance of the class goes out of scope. This can happen in many cases, such as:
+Connection
class is defined in the local scope of a function, and the function returnsConnection
class is defined as an attribute of a custom class's instance, and the custom class's instance goes out of scope.Connections can also be explicitly closed using the close()
method, which is helpful when the connection is no longer needed, but the variable is still in scope.
Starting with MariaDB Connector/Python 1.1 when MariaDB Connector/Python is built with MariaDB Connector/C 3.3, the connector supports connection failover when auto_reconnect
is
+enabled and the connection string contains a comma-separated list of multiple server addresses.
To enable connection failover:
+mariadb.connect
function with the host
argument specified as a comma-separated list containing multiple server addresses. The connector attempts to connect to the addresses in the order specified in the list.auto_reconnect
to True
. If the connection fails, the connector will attempt to reconnect to the addresses in the order specified in the list.The following code example connects with connection failover enabled:
+# Module Import
+import mariadb
+import sys
+
+# Instantiate Connection
+try:
+ conn = mariadb.connect(
+ host="192.0.2.1,192.0.2.0,198.51.100.0",
+ port=3306,
+ user="db_user",
+ password="USER_PASSWORD")
+ conn.auto_reconnect = True
+except mariadb.Error as e:
+ print(f"Error connecting to the database: {e}")
+ sys.exit(1)
+
+# Use Connection
+# ...
+
+# Close Connection
+conn.close()
+
# Module Import
+import mariadb
+import sys
+
+# Instantiate Connection
+try:
+ conn = mariadb.connect(
+ host="SKYSQL_SERVICE.mdb0000001.db.skysql.com,SKYSQL_SERVICE.mdb0000002.db.skysql.com",
+ port=5009,
+ ssl_verify_cert=True,
+ user="DB00000001",
+ password="USER_PASSWORD")
+ conn.auto_reconnect = True
+except mariadb.Error as e:
+ print(f"Error connecting to the database: {e}")
+ sys.exit(1)
+
+# Use Connection
+# ...
+
+# Close Connection
+conn.close()
+
MariaDB Connector/C++ enables C++ applications to establish client connections to SkySQL over TLS.
+MariaDB Connector/C++ has dependencies. You must install MariaDB Connector/C to use it.
+MariaDB Connector/C++ | +MariaDB Connector/C | +
---|---|
1.1 | +3.2.3 or later | +
1.0 | +3.1.1 or later | +
For additional information, see "MariaDB Connector/C++ Release Notes".
+To install MariaDB Connector/C++ on Linux:
+Extract the tarball:
+tar -xvzf mariadb-connector-cpp-*.tar.gz
+
Change into the relevant directory:
+cd mariadb-connector-cpp-*/
+
Install the directories for the header files:
+sudo install -d /usr/include/mariadb/conncpp
+sudo install -d /usr/include/mariadb/conncpp/compat
+
Install the header files:
+sudo install include/mariadb/* /usr/include/mariadb/
+sudo install include/mariadb/conncpp/* /usr/include/mariadb/conncpp
+sudo install include/mariadb/conncpp/compat/* /usr/include/mariadb/conncpp/compat
+
Install the directories for the shared libraries:
+On CentOS, RHEL, Rocky Linux:
+sudo install -d /usr/lib64/mariadb
+sudo install -d /usr/lib64/mariadb/plugin
+
On Debian, Ubuntu:
+sudo install -d /usr/lib/mariadb
+sudo install -d /usr/lib/mariadb/plugin
+
Install the shared libraries:
+On CentOS, RHEL, Rocky Linux:
+sudo install lib64/mariadb/libmariadbcpp.so /usr/lib64
+sudo install lib64/mariadb/plugin/* /usr/lib64/mariadb/plugin
+
On Debian, Ubuntu:
+sudo install lib/mariadb/libmariadbcpp.so /usr/lib
+sudo install lib/mariadb/plugin/* /usr/lib/mariadb/plugin
+
To install MariaDB Connector/C++ on Windows:
+mariadbcpp
Ā LIB
Ā file (exampleĀ "C:\ProgramĀ Files\MariaDB\MariaDBĀ C++Ā ConnectorĀ 64-bit"
) toĀ PATH
Ā environment variable.For latest release visit C & C++ Connectors
+The connection is configured via the information that is initially acquired from the SkySQL Portal pages:
+What to set | +Where to find it | +
---|---|
Hostname in the URL | +The fully Qualified Domain Name from the "Connect" window in SkySQL portal | +
Port number in the URL | +The Read-Write Port or Read-Only Port from the "Connect" window in SkySQL portal | +
userĀ parameter | +The desired username, which might be the default username in the Service Credentials view | +
passwordĀ parameter | +The user's password, which might be the default password in the Service Credentials view if it was not yet customized | +
While MariaDB Connector/C++ supports several connection styles, we are going to detail just the JDBC syntax since all connections to SkySQL use a single idiom of hostname, port, user, password, and SSL parameters.
+The base URL is specified as follows:
+jdbc:mariadb://example.skysql.com:5001/dbname
+
If the trailing database name is left off of the URL, the connection will start without selecting a database.
+MariaDB Connector/C++ supports several optional connection parameters. These parameters can be specified using aĀ Properties
Ā object, as we do in our examples, or appended to the URL in standardĀ name=value
Ā query-string encoding.
In the following list, we've left out any parameters that aren't pertinent to accessing SkySQL:
+Parameter Name | +Description | +Type | +Default | +Aliases | +
---|---|---|---|---|
autoReconnect | +Defines whether the connector automatically reconnects after a connection failure. | +bool | +false | +OPT_RECONNECT | +
connectTimeout | +Defines the connect timeout value in milliseconds. When set toĀ 0, there is no connect timeout. | +int | +30000 | ++ |
enabledTlsCipherSuites | +A list of permitted ciphers or cipher suites to use for TLS. | +string | ++ | enabledSslCipherSuites | +
jdbcCompliantTruncation | +This mode is enabled by default. This mode configures the connector to addĀ STRICT_TRANS_TABLESĀ toĀ sql_mode, which causes ES to handle truncation issues as errors instead of warnings. | +bool | +true | ++ |
password | +Defines the password of the user account to connect with. | ++ | + | + |
socketTimeout | +Defines the network socket timeout (SO_TIMEOUT) in milliseconds. When set toĀ 0, there is no socket timeout. This connection parameter is not intended to set a maximum time for statements. To set a maximum time for statements, please see theĀ max_statement_time. | +int | +0 | +OPT_READ_TIMEOUT | +
tcpRcvBuf | +The buffer size for TCP/IP and socket communication.Ā tcpSndBufĀ changes the same buffer value, and the biggest value of the two is selected. | +int | +0x4000 | +tcpSndBuf | +
tcpSndBuf | +The buffer size for TCP/IP and socket communication.Ā tcpRcvBufĀ changes the same buffer value, and the biggest value of the two is selected. | +int | +0x4000 | +tcpRcvBuf | +
tlsCert | +Path to the X509 certificate file. | +string | ++ | sslCert | +
tlsCRL | +Path to a PEM file that should contain one or more revoked X509 certificates. | +string | ++ | tlsCrl | +
useCompression | +Compresses network traffic between the client and server. | +bool | +false | +CLIENT_COMPRESS | +
user | +Defines the user name of the user account to connect with. | ++ | + | userName | +
useServerPrepStmts | +Defines whether the connector uses server-side prepared statements using theĀ PREPARE Statement,Ā EXECUTE statement, andĀ DEALLOCATE / DROP PREPARE statementsĀ statements. By default, the connector uses client-side prepared statements. | +bool | +false | ++ |
useTls | +Whether to force TLS. This enables TLS with the default system settings. | +bool | ++ | useSsl | +
Two categories of methods are available to to establish a connection.
+MariaDB Connector/C++ can connect using the non-staticĀ connect()
Ā methods in theĀ sql::Driver
Ā class.
The non-staticĀ connect()
Ā methods in theĀ sql::Driver
Ā class have the following prototypes:
Connection*Ā connect(constĀ SQLString&Ā url,Ā Properties&Ā props);
Connection*Ā connect(constĀ SQLString&Ā host,Ā constĀ SQLString&Ā user,Ā constĀ SQLString&Ā pwd);
Connection*Ā connect(constĀ Properties&Ā props);
The non-staticĀ connect()
Ā methods in theĀ sql::Driver
Ā class:
sql::Driver
Ā class to establish a connection.nullptr
Ā as theĀ Connection*
Ā value when an error occurs, so applications should check the return value before use.For example:
+// Instantiate Driver
+sql::Driver* driver = sql::mariadb::get_driver_instance();
+
+// Configure Connection, including an optional initial database name "places":
+sql::SQLString url("jdbc:mariadb://example.skysql.com:5009/places");
+
+// Use a properties map for the other connection options
+sql::Properties properties({
+ {"user", "db_user"},
+ {"password", "db_user_password"},
+ {"autocommit", false},
+ {"useTls", true},
+ {"tlsCert", "classpath:static/skysql_chain.pem"},
+ });
+
+// Establish Connection
+// Use a smart pointer for extra safety
+std::unique_ptr<sql::Connection> conn(driver->connect(url, properties));
+
+if (!conn) {
+ cerr << "Invalid database connection" << endl;
+ exit (EXIT_FAILURE);
+}
+
MariaDB Connector/C++ can connect using the staticĀ getConnection()
Ā methods in theĀ sql::DriverManager
Ā class.
The staticĀ getConnection()
Ā methods in theĀ sql::DriverManager
Ā class have the following prototypes:
staticĀ Connection*Ā getConnection(constĀ SQLString&Ā url);
staticĀ Connection*Ā getConnection(constĀ SQLString&Ā url,Ā Properties&Ā props);
staticĀ Connection*Ā getConnection(constĀ SQLString&Ā url,Ā constĀ SQLString&Ā user,Ā constĀ SQLString&Ā pwd);
The staticĀ getConnection()
Ā methods in theĀ sql::DriverManager
Ā class:
sql::DriverManager
Ā class to establish a connection, because they are static.tryĀ {Ā ..Ā }Ā catchĀ (Ā ..Ā )Ā {Ā ..Ā }
Ā to catch the exception.For example:
+try {
+ // Configure Connection, including an optional initial database name "places":
+ sql::SQLString url("jdbc:mariadb://example.skysql.com:5009/places");
+
+ // Use a properties map for the other connection options
+ sql::Properties properties({
+ {"user", "db_user"},
+ {"password", "db_user_password"},
+ {"autocommit", false},
+ {"useTls", true},
+ {"tlsCert", "classpath:static/skysql_chain.pem"},
+ });
+
+ // Establish Connection
+ // Use a smart pointer for extra safety
+ std::unique_ptr<sql::Connection> conn(DriverManager::getConnection(url, properties));
+ } catch (...) {
+ cerr << "Invalid database connection" << endl;
+ exit (EXIT_FAILURE);
+}
+
The following code demonstrates how to connect using theĀ example database and user account:
+// Includes
+#include <iostream>
+#include <mariadb/conncpp.hpp>
+
+// Main Process
+int main(int argc, char **argv)
+{
+ try {
+ // Instantiate Driver
+ sql::Driver* driver = sql::mariadb::get_driver_instance();
+
+ // Configure Connection, including initial database name "test":
+ sql::SQLString url("jdbc:mariadb://example.skysql.com:5009/test");
+
+ // Use a properties map for the other connection options
+ sql::Properties properties({
+ {"user", "db_user"},
+ {"password", "db_user_password"},
+ {"autocommit", false},
+ {"useTls", true},
+ {"tlsCert", "classpath:static/skysql_chain.pem"},
+ });
+
+ // Establish Connection
+ // Use a smart pointer for extra safety
+ std::unique_ptr<sql::Connection> conn(driver->connect(url, properties));
+
+ // Use Connection
+ // ...
+
+ // Close Connection
+ conn->close();
+ }
+
+ // Catch Exceptions
+ catch (sql::SQLException& e) {
+ std::cerr << "Error Connecting to the database: "
+ << e.what() << std::endl;
+
+ // Exit (Failed)
+ return 1;
+ }
+
+ // Exit (Success)
+ return 0;
+}
+
MariaDB Connector/C enables C and C++ applications to establish client connections to SkySQL over TLS. MariaDB Connector/C is a native connector that is written in C.
+MariaDB Connector/C enables C and C++ applications to establish client connections to SkySQL and MariaDB database products over TLS.
+Additional information on MariaDB Connector/C is available in theĀ MariaDB Knowledge Base.
+The connection is configured via the information that is initially acquired from the SkySQL Portal pages:
+Function | +Option/Argument | +Where to find it | +
---|---|---|
mysql_real_connect() | +hostĀ argument | +The fully Qualified Domain Name from the "Connect" window in SkySQL portal | +
mysql_real_connect() | +userĀ argument | +The desired username, which might be the default username in the Service Credentials view | +
mysql_real_connect() | +passwdĀ argument | +The user's password, which might be the default password in the Service Credentials view if it was not yet customized | +
mysql_real_connect() | +portĀ argument | +The Read-Write Port or Read-Only Port from the "Connect" window in SkySQL portal | +
The following code demonstrates how to use MariaDB Connector/C to connect to SkySQL. This example uses theĀ example database and user account:
+#include <stdio.h>
+#include <stdlib.h>
+#include <mysql.h>
+
+int main (int argc, char* argv[])
+{
+
+ // Initialize Connection
+ MYSQL *conn;
+ if (!(conn = mysql_init(0)))
+ {
+ fprintf(stderr, "unable to initialize connection struct\n");
+ exit(1);
+ }
+
+ // Connect to the database
+ if (!mysql_real_connect(
+ conn, // Connection
+ "example.skysql.com", // Host
+ "db_user", // User account
+ "db_user_password", // User password
+ "test", // Default database
+ 3006, // Port number
+ NULL, // Path to socket file
+ 0 // Additional options
+ ))
+ {
+ // Report the failed-connection error & close the handle
+ fprintf(stderr, "Error connecting to Server: %s\n", mysql_error(conn));
+ mysql_close(conn);
+ exit(1);
+ }
+
+ // Use the Connection
+ // ...
+
+ // Close the Connection
+ mysql_close(conn);
+
+ return 0;
+}
+
Java developers can use MariaDB Connector/R2DBC to connect to SkySQL using the Reactive Relational Database Connectivity (R2DBC) API. R2DBC operations are non-blocking, which makes the R2DBC API more scalable than Java's standard JDBC API. MariaDB Connector/R2DBC is available both with a native R2DBC implementation and the Spring Data R2DBC framework.
+Visit MariaDB R2DBC Connector page.
+MariaDB Client is available for Linux and Windows
+Installation of MariaDB Client varies by operating system.
+Configure YUM package repositories:
+sudo yum install wget
+wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+echo "30d2a05509d1c129dd7dd8430507e6a7729a4854ea10c9dcf6be88964f3fdc25 mariadb_repo_setup" \
+ | sha256sum -c -
+
+chmod +x mariadb_repo_setup
+
+sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-10.11"
+
Install MariaDB Client and package dependencies:
+sudo yum install MariaDB-client
+
Configure APT package repositories:
+sudo apt install wget
+
+wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+
+echo "30d2a05509d1c129dd7dd8430507e6a7729a4854ea10c9dcf6be88964f3fdc25 mariadb_repo_setup" \
+ | sha256sum -c -
+
+chmod +x mariadb_repo_setup
+
+sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-10.11"
+
+sudo apt update
+
Install MariaDB Client and package dependencies:
+sudo apt install mariadb-client
+
Configure ZYpp package repositories:
+sudo zypper install wget
+
+wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+
+echo "30d2a05509d1c129dd7dd8430507e6a7729a4854ea10c9dcf6be88964f3fdc25 mariadb_repo_setup" \
+ | sha256sum -c -
+
+chmod +x mariadb_repo_setup
+
+sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-10.6"
+
Install MariaDB Client and package dependencies: +
sudo zypper install MariaDB-client
+
Access MariaDB Downloads for MariaDB Community Server.
+In the "Version" dropdown, select the version you want to download.
+In the "OS" dropdown, select "MS Windows (64-bit)".
+Click the "Download" button to download the MSI package.
+When the MSI package finishes downloading, run it.
+On the first screen, click "Next" to start the Setup Wizard.
+On the second screen, click the license agreement checkbox, and then click "Next".
+On the third screen, select the components you want to install. If you only want the standard MariaDB Client tools:
+When only "Client programs" is selected, click "Next".
+On the next screen, click "Install".
+When the installation process completes, click "Finish".
+Determine the connection parameters for your SkySQL service.
+Use your connection parameters in the following command line:
+mariadb --host dbpwf03798702.sysp0000.db1.skysql.com --port 3306 \
+ --user dbpwf03798702 -p --ssl-verify-server-cert
+
Replace 'dbpwf03798702.sysp0000.db1.skysql.com' with the Fully Qualified Domain Name of your service.
+You can use 3307 for the port if running with Replicas. This is the read-only port of your service.
+Replace the user name with the one for your service.
+After the command is executed, you will be prompted for the password of your database user account. Enter the default password for your default user, the password you set for the default user, or the password for the database user you created.
+Fix your executable search path.
+On Windows, MariaDB Client is not typically found in the executable search path by default. You must find its installation path, and add that path to the executable search path:
+SET "PATH=C:\Program Files\MariaDB 10.6\bin;%PATH%"
+
Use your connection parameters in the following command line:
+mariadb --host dbpwf03798702.sysp0000.db1.skysql.com --port 3306 \
+ --user dbpwf03798702 -p --ssl-verify-server-cert
+
Replace 'dbpwf03798702.sysp0000.db1.skysql.com' with the Fully Qualified Domain Name of your service.
+You can use 3307 for the port if running with Replicas. This is the read-only port of your service.
+Replace the user name with the one for your service.
+After the command is executed, you will be prompted for the password of your database user account. Enter the default password for your default user, the password you set for the default user, or the password for the database user you created.
+Application developers can use MariaDB Connector/ODBC to establish a data source for client connections with SkySQL.
+The method for configuring the data source varies between operating systems.
+Configure unixODBC
to recognize the driver by creating a file called MariaDB_odbc_driver_template.ini
with the relevant driver definition.
For example, on CentOS / RHEL / Rocky Linux:
+[MariaDB ODBC 3.1 Driver]
+Description = MariaDB Connector/ODBC v.3.1
+Driver = /usr/lib64/libmaodbc.so
+
On Debian / Ubuntu:
+[MariaDB ODBC 3.1 Driver]
+Description = MariaDB Connector/ODBC v.3.1
+Driver = /usr/lib/libmaodbc.so
+
Install the driver using the odbcinst
command.
For example:
+sudo odbcinst -i -d -f MariaDB_odbc_driver_template.ini
+
Determine the connection parameters for your database.
+Configure unixODBC
to connect to the data source by creating a file called MariaDB_odbc_data_source_template.ini
with the relevant data source parameters. Be sure to specify SSLVERIFY = 1
for your SkySQL database.
For example:
+# Data Source for unixODBC
+[My-Test-Server]
+Description = Describe your database setup here
+Driver = MariaDB ODBC 3.1 Driver
+Trace = Yes
+TraceFile = /tmp/trace.log
+SERVER = localhost
+SOCKET = /var/run/mysqld/mysqld.sock
+USER = db_user
+PASSWORD = db_user_password
+DATABASE = test
+
# Data Source for unixODBC
+[My-Test-Server]
+Description = Describe your database setup here
+Driver = MariaDB ODBC 3.1 Driver
+Trace = Yes
+TraceFile = /tmp/trace.log
+SERVER = example.skysql.com
+PORT = 3306
+SSLVERIFY = 1
+USER = db_user
+PASSWORD = db_user_password
+DATABASE = test
+
SSLCA = /path/to/ca-cert.pem
+SSLKEY = /path/to/client-key.pem
+SSL_CERT = /path/to/client-cert.pem
+
Install the unixODBC
data source template file:
$ sudo odbcinst -i -s -h -f MariaDB_odbc_data_source_template.ini
+
Test the data source My-Test-Server
configured in the MariaDB_odbc_data_source_template.ini
+file using the isql
command. If you see the output below, you have successfully connected to your Sky database.
$ isql -v My-Test-Server
++-------------------------+
+| Connected! |
+| sql-statement |
+| help[tablename] |
+| quit |
++-------------------------+
+SQL>
+
To select your new data source in your application, select the data source with the name that you configured, which is My-Test-Server
in the above example.
Confirm that MariaDB Connector/ODBC has been registered withiODBC
by confirming that the following options are set in the iODBC
configuration file at /Library/ODBC/odbcinst.ini
:
[ODBC]
+Trace = no
+TraceFile = /tmp/iodbc_trace.log
+
+[ODBC Drivers]
+MariaDB ODBC 3.1 Unicode Driver = Installed
+
+[MariaDB ODBC 3.1 Unicode Driver]
+Driver = /Library/MariaDB/MariaDB-Connector-ODBC/libmaodbc.dylib
+Description = MariaDB Connector/ODBC(Unicode) 3.1 64bit
+Threading = 0
+
Determine the connection parameters for your database.
+Add a data source for your database to iODBC
by adding the following options to the iODBC
configuration file at /Library/ODBC/odbc.ini
:
[ODBC Data Sources]
+My-Test-Server = MariaDB ODBC 3.1 Unicode Driver
+
+[My-Test-Server]
+Driver = /Library/MariaDB/MariaDB-Connector-ODBC/libmaodbc.dylib
+SERVER = 192.0.2.1
+DATABASE = test
+USER = db_user
+PASSWORD = db_user_password
+
SERVER
, SOCKET
, DATABASE
, PORT
, USER
, and PASSWORD
parameters with the relevant value for your environment.iodbctest
command:iodbctest "DSN=My-Test-Server"
+
To select your new data source in your application, select the data source with the name that you configured, which is My-Test-Server
in the above example.
MariaDB Connector/ODBC requires at least Windows 8.
+Windows 10 was used to prepare these instructions. When using other versions of Windows, these instructions may require adjustment.
+MariaDB Connector/ODBC supports failover in case one or more hosts are not available.
+The failover feature requires using MariaDB Connector/ODBC 3.1.16 or greater with MariaDB Connector/C 3.3 or greater.
+MariaDB Connector/ODBC 3.1.16
and greater is statically linked for Windows and macOS with MariaDB Connector/C 3.3.1
.
+MariaDB Connector/ODBC 3.1.16
and greater is dynamically linked for Linux with MariaDB Connector/C.
The failover feature is enabled by providing a comma separated list of hosts as a server name.
+The failover host string is the SERVER
string. If the SERVER
string does not include a port, the default port will be used.
The following syntax is required:
+"[]"
":"
hostname:port
pairs must be be separated by a comma ","
hostname:port
is specified, the host string must end with a commaAn example of a failover host string:
+[::1]:3306,192.168.0.1:3307,test.example.com
+
Connection Parameter | +Description | +Default Value | +
---|---|---|
DRIVER | +ā¢ On Linux, the name of the driver, which is configured in the unixODBC driver template file. On macOS, the path to the driver's shared library, which is installed at /Library/MariaDB/MariaDB-Connector-ODBC/libmaodbc.dylib by default. | ++ |
SERVER | +Host name, IPv4 address, or IPv6 address of the database server. | +localhost | +
SOCKET | +The path to the socket file. On Linux, MariaDB Enterprise Server uses different default socket files on different Linux distributions. On Debian / Ubuntu, the default socket file is /var/run/mysqld/mysqld.sock or /run/mysqld/mysqld.sock. On CentOS / RHEL / Rocky Linux, the default socket file is /var/lib/mysql/mysql.sock. | +/tmp/mysql.sock | +
DATABASE | +Database name to select upon successful connection. The database must already exist, and the user account must have privileges to select it. | ++ |
PORT | +TCP port of the database server. | +3306 | +
USER | +The username to use for authentication. | ++ |
PASSWORD | +User password. | ++ |
FORWARDONLY | +When enabled, cursors are created as SQL_CURSOR_FORWARD_ONLY, so they can only move forward. Starting in Connector/ODBC 3.2, cursors are SQL_CURSOR_FORWARD_ONLY by default. In previous releases, cursors are created as SQL_CURSOR_STATIC by default. | ++ |
NO_CACHE | +When enabled, result set streaming is enabled, which enables the application to fetch result sets from the server row-by-row instead of caching the entire result set on the client side. Since the application is not caching the entire result set, the application is less likely to run out of memory when working with large result sets. | ++ |
STREAMRS | +Alias for the NO_CACHE connection parameter. | ++ |
OPTIONS | +See OPTIONS Bitmask | ++ |
PREPONCLIENT | +When enabled, the SQLPrepare ODBC API function uses the text protocol and client-side prepared statements (CSPS). | ++ |
ATTR | +Sets connection attributes that can be queried via the Performance Schema session_connect_attrs Table when the Performance Schema is enabled. Specify attributes in the format ATTR={ |
++ |
What | +Where to find it | +
---|---|
DRIVER | +ā¢ On Linux, the name of the driver, which is configured in the unixODBC driver template file. On macOS, the path to the driver's shared library, which is installed at /Library/MariaDB/MariaDB-Connector-ODBC/libmaodbc.dylib by default. | +
SERVER | +Fully Qualified Domain Name in the https://www.notion.so../../../connection-parameters-portal/ | +
PORT | +Read-Write Port or Read-Only Port in the https://www.notion.so../../../connection-parameters-portal/ | +
USER | +Default username in the Service Credentials view, or the username you created | +
PASSWORD | +Default password in the Service Credentials view, the password you set on the default user, or the password for the user you created | +
SSLVERIFY | +Set to 1 to connect with SSL | +
FORCETLS | +Set to 1 to enable TLS | +
FORWARDONLY | +When enabled, cursors are created as SQL_CURSOR_FORWARD_ONLY, so they can only move forward. Starting in Connector/ODBC 3.2, cursors are SQL_CURSOR_FORWARD_ONLY by default. In previous releases, cursors are created as SQL_CURSOR_STATIC by default. | +
NO_CACHE | +When enabled, result set streaming is enabled, which enables the application to fetch result sets from the server row-by-row instead of caching the entire result set on the client side. Since the application is not caching the entire result set, the application is less likely to run out of memory when working with large result sets. | +
STREAMRS | +Alias for the NO_CACHE connection parameter. | +
OPTIONS | +See OPTIONS Bitmask | +
PREPONCLIENT | +When enabled, the SQLPrepare ODBC API function uses the text protocol and client-side prepared statements (CSPS). | +
ATTR | +Sets connection attributes that can be queried via the Performance Schema session_connect_attrs Table when the Performance Schema is enabled. Specify attributes in the format ATTR={ |
+
OPTIONS
BitmaskThe OPTIONS
bitmask
+contains the following bits:
Bit Number | +Bit Value | +Description | +
---|---|---|
0 | +1 | +Unused | +
1 | +2 | +Tells connector to return the number of matched rows instead of number of changed rows | +
4 | +16 | +Same as NO_PROMPT connection parameter | +
5 | +32 | +Forces all cursors to be dynamic | +
6 | +64 | +Forbids the DATABASE_NAME.TABLE_NAME.COLUMN_NAME syntax | +
11 | +2048 | +Enables compression in the protocol | +
13 | +8192 | +Same as the NAMEDPIPE connection parameter | +
16 | +65536 | +Same as the USE_MYCNF connection parameter | +
20 | +1048576 | +Same as the NO_CACHE connection parameter | +
21 | +2097152 | +Same as the FORWARDONLY connection parameter | +
22 | +4194304 | +Same as the AUTO_RECONNECT connection parameter | +
26 | +67108864 | +Enables multi-statement queries | +
This page describes how to connect to a SkySQL database using a MariaDB-compatible client.
+Note
+š” Access to all services are protected by a firewall, by default. You need to IP whitelist your clientās (your desktop, laptop or server) IP. Just select āManage ā> Security Accessā and then click āAdd my current IPā to add the IP of your current workstation (laptop, desktop).
+Note
+š” If you are not sure or unable to obtain the IP address, you can use 0.0.0.0/0 to effectively disable the firewall. Goes without saying ā donāt do this for your production DBs.
+For more details go to theĀ FirewallĀ settings page.
+Once your DB service is launched, click on the āConnectā option for your service on the dashboard. This pops up all the required attributes to connect from any SQL client.
+Connection parameters include:
+Note
+š” There is a default config change in the 11.4.2 MariaDB client that requires SSL. This needs to be disabled by setting --ssl-verify-server-cert=0
.
After installing the MariaDB client according to your operating system, simply copy/paste the MariaDB CLI command as displayed in the Connect window.
+Applications can connect to SkySQL using any of the below MariaDB supported connectors. There are several other connectors from the community too.
+Note
+š” For Enterprise Server With Replica(s), you can also use any MongoDB client and use theĀ NoSQL Interface
+Clients listed here have been tested to properly connect with SkySQL and execute queries.
+Note
+š” Unlike previous SkySQL versions, the current version no longer requires clients to supply the Server SSL Certificate for SSL connections. Customers who migrated from MariaDB corporation to SkySQL Inc can continue to use provided certificates (when using the previous SkySQL method for connecting). But, we strongly recommend moving to the connection properties as shown in the Connect window for your service.
+Most of the SQL clients and editors natively support MariaDB. Most often you can also just select 'MySQL' and connect to your SkySQL DB service.
+Data can be loaded to SkySQL services with the assistance of SkySQL Support or by using self-service tools. When importing large data sets, we recommend working with SkySQL Support.
+Instructions are provided for the following data import methods:
+Data Import Method | +Use Case | +
---|---|
Support-Assisted Data Import | +Coordinate data import with SkySQL Support | +
Import Data with LOAD DATA LOCAL INFILE | +Import TSV (tab-delimited) or CSV (comma-delimited) file data using theĀ LOADĀ DATAĀ LOCALĀ INFILEĀ statement with your database client | +
Import Data with mariadb-import |
+Import TSV (tab-delimited) or CSV (comma-delimited) file data using theĀ mariadb-importĀ utility | +
To export data from a MySQL/MariaDB database and import it into SkySQL, you can follow these steps:
+Start by using the mysqldump
command to export the data from the source database. This command allows you to create a backup of your database in a SQL file. For example, you can use the following command:
mysqldump -u [username] -p [database_name] > dump.sql
+
In this command, replace [username]
with your MySQL/MariaDB username and [database_name]
with the name of the database you want to export. The >
symbol redirects the output to a file named dump.sql
.
An optional step - Once you have exported the data, you need to transfer the dump.sql
file to the destination server where you can efficiently connect to your SkySQL database. This is typically the same cloud provider region where your Sky DB is running.
CREATE DATABASE
statement. This step is necessary if you want to import the data into a new database. If you already have a database in which you want to import the data, you can skip this step.Finally, import the data from the dump.sql
file into the destination database using the mariadb or mysql
command. This command reads the SQL statements in the file and executes them in the specified database. Here's an example command:
## mariadb -u [username] -p [database_name] < dump.sql
+
+mariadb --host dbpwp27784332.orgtd5j0.db1.skysql.mariadb.com --port 3306 --user dbpwp27784332 -p [database_name] < dump.sql
+
Replace [hostname], username]
with your SkySQL username and [database_name]
with the name of the destination database. The <
symbol is used to redirect the input from the file dump.sql
.
By following these steps, you will be able to export data from your MySQL/MariaDB database and import it into SkySQL, ensuring a smooth transition of your data.
+ + + + +SkySQL customers can import data into a SkySQL service using theĀ LOADĀ DATAĀ LOCALĀ INFILE
Ā SQL statement:
LOADĀ DATAĀ LOCALĀ INFILE
Ā statement can import data from TSV and CSV filesLOADĀ DATAĀ LOCALĀ INFILE
Ā statement can be executed by any client or connectorNote
+Make sure your schema is already created in the database. If you need to import entire databases or create tables, you should use mariab-import.
+Support for local infiles must be enabled on the client side and on the SkySQL service.
+To execute theĀ LOADĀ DATAĀ LOCALĀ INFILE
Ā statement, most clients and connectors require a specific option to be enabled.
If you are usingĀ mariadb
Ā client, theĀ --local-infile
Ā optionĀ must be specified.
Support for local infiles must be enabled on the SkySQL service.
+For SkySQL services that use MariaDB Enterprise Server and MariaDB Enterprise ColumnStore, theĀ local_infileĀ system variableĀ must be enabled:
+OFF
Ā by defaultConfiguration ManagerĀ can be used to modify the value of theĀ local_infileĀ system variable.
+mariadb
Ā client and specify theĀ -local-infileĀ option, which is needed by the next step:mariadb --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
+ --user DATABASE_USER --password \
+ --ssl-verify-server-cert \
+ --default-character-set=utf8 \
+ --local-infile
+
After the command is executed, you will be prompted for a password. Enter the default password for your default user, the password you set for the default user, or the password for the database user you created.
+For each table that you want to import, execute theĀ LOADĀ DATAĀ LOCALĀ INFILEĀ statement to import the data from the TSV or CSV file into your SkySQL database service.
+For a TSV file:
+LOAD DATA LOCAL INFILE 'contacts.tsv'
+INTO TABLE accounts.contacts;
+
For a CSV file:
+LOAD DATA LOCAL INFILE 'contacts.csv'
+INTO TABLE accounts.contacts
+FIELDS TERMINATED BY ',';
+
If you are using a MariaDB Connector, then you must select the method for the specific connector from the list below.
+If you are using MariaDB Connector/C, theĀ MYSQL_OPT_LOCAL_INFILE
Ā option can be set with theĀ mysql_optionsv()
Ā function:
/* enable local infile */
+unsigned int enable_local_infile = 1;
+mysql_optionsv(mysql, MYSQL_OPT_LOCAL_INFILE, (void *) &enable_local_infile);
+
If you are using MariaDB Connector/J, theĀ allowLocalInfile
Ā parameter can be set for the connection:
Connection connection = DriverManager.getConnection("jdbc:mariadb://FULLY_QUALIFIED_DOMAIN_NAME:TCP_PORT/test?user=DATABASE_USER&password=DATABASE_PASSWORD&allowLocalInfile=true");
+
If you are using MariaDB Connector/Node.js, theĀ permitLocalInfile
Ā parameter can be set for the connection:
mariadb.createConnection({
+ host: 'FULLY_QUALIFIED_DOMAIN_NAME',
+ port: 'TCP_PORT',
+ user:'DATABASE_USER',
+ password: 'DATABASE_PASSWORD',
+ permitLocalInfile: 'true'
+ });
+
If you are using MariaDB Connector/Python, theĀ local_infile
Ā parameter can be set for the connection:
conn = mariadb.connect(
+ user="DATABASE_USER",
+ password="DATABASE_PASSWORD",
+ host="FULLY_QUALIFIED_DOMAIN_NAME",
+ port=TCP_PORT,
+ local_infile=true)
+
SkySQL customers can manually create a backup of a SkySQL service using theĀ mariadb-dump
Ā utility:
mariadb-dump
Ā utility provides a command-line interface (CLI)mariadb-dump
Ā utility is available for Linux and Windowsmariadb-dump
Ā utility supportsĀ many command-line optionsFor details about restoring a backup created with theĀ mariadb-dump
Ā utility, see "Restore a Manual Backup".
Installation of MariaDB Dump varies by operating system.
+Configure YUM package repositories:
+`$ sudo yum install wget
+$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+$ echo "935944a2ab2b2a48a47f68711b43ad2d698c97f1c3a7d074b34058060c2ad21b mariadb_repo_setup" \ | sha256sum -c -
+$ chmod +x mariadb_repo_setup
+$ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.6"`
+Install MariaDB Dump and package dependencies:
+$ sudo yum install MariaDB-client
Configure APT package repositories:
+`$ sudo apt install wget
+$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+$ echo "935944a2ab2b2a48a47f68711b43ad2d698c97f1c3a7d074b34058060c2ad21b mariadb_repo_setup" \ | sha256sum -c -
+$ chmod +x mariadb_repo_setup
+$ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.6"$ sudo apt update`
+Install MariaDB Dump and package dependencies:
+$ sudo apt install mariadb-client
Configure ZYpp package repositories:
+`$ sudo zypper install wget
+$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+$ echo "935944a2ab2b2a48a47f68711b43ad2d698c97f1c3a7d074b34058060c2ad21b mariadb_repo_setup" \ | sha256sum -c -
+$ chmod +x mariadb_repo_setup
+$ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.6"`
+Install MariaDB Dump and package dependencies:
+$ sudo zypper install MariaDB-client
The procedure to create a backup depends on the operating system.
+If you plan to restore the backup to a SkySQL service, theĀ mysql
Ā database should be excluded from the backup by specifyingĀ [--ignore-database=mysql](https://mariadb.com/docs/skysql-dbaas/ref/mdb/cli/mariadb-dump/ignore-database/)
, because SkySQL user accounts do not have sufficient privileges to restore that database.
mariadb-dump --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
+ --user DATABASE_USER --password \
+ --ssl-verify-server-cert \
+ --ssl-ca ~/PATH_TO_PEM_FILE \
+ --all-databases \
+ --ignore-database=mysql \
+ --single-transaction \
+ --events \
+ --routines \
+ --default-character-set=utf8mb4 \
+ > skysql_dump.sql
+
FULLY_QUALIFIED_DOMAIN_NAME
Ā with the Fully Qualified Domain Name of your service.TCP_PORT
Ā with the read-write or read-only port of your service.DATABASE_USER
Ā with the default username for your service, or the username you created.~/PATH_TO_PEM_FILE
Ā with the path to the certificate authority chain (.pem) file.After the command is executed, you will be prompted for a password. Enter the default password for your default user, the password you set for the default user, or the password for the database user you created.
+Fix your executable search path.
+On Windows, MariaDB Dump is not typically found in the executable search path by default. You must find its installation path, and add that path to the executable search path:
+$ SET "PATH=C:\Program Files\MariaDB 10.6\bin;%PATH%"
Determine theĀ connection parametersĀ for your SkySQL service.
+mariadb-dump --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
+ --user DATABASE_USER --password \
+ --ssl-verify-server-cert \
+ --ssl-ca ~/PATH_TO_PEM_FILE \
+ --all-databases \
+ --ignore-database=mysql \
+ --single-transaction \
+ --events \
+ --routines \
+ --default-character-set=utf8mb4 \
+ > skysql_dump.sql
+
FULLY_QUALIFIED_DOMAIN_NAME
Ā with the Fully Qualified Domain Name of your service.TCP_PORT
Ā with the read-write or read-only port of your service.DATABASE_USER
Ā with the default username for your service, or the username you created.PATH_TO_PEM_FILE
Ā with the path to the certificate authority chain (.pem) file.After the command is executed, you will be prompted for a password. Enter the default password for your default user, the password you set for the default user, or the password for the database user you created.
+The instructions provided above are written for MariaDB Dump 10.4 and later, which uses the binary filename ofĀ mariadb-dump
.
For MariaDB Dump 10.3 and older, the binary filename wasĀ mysqldump
. The instructions can be adapted for MariaDB Dump 10.3 and older by executingĀ mysqldump
Ā rather thanĀ mariadb-dump
.
For system-versioned tables and transaction-precise tables, MariaDB Dump only backs up current row versions. It does not back up historical row versions.
+ + + + + + + + + + + + + +SkySQL customers can import data into a SkySQL service using theĀ mariadb-import
Ā utility:
mariadb-import
Ā utility provides a command-line interface (CLI)mariadb-import
Ā utility can import data from TSV and CSV filesmariadb-import
Ā utility is available for Linux and Windowsmariadb-import
Ā utility supportsĀ many command-line optionsInstallation of MariaDB Import varies by operating system.
+Configure YUM package repositories:
+`$ sudo yum install wget
+$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+$ echo "935944a2ab2b2a48a47f68711b43ad2d698c97f1c3a7d074b34058060c2ad21b mariadb_repo_setup" \ | sha256sum -c -
+$ chmod +x mariadb_repo_setup
+$ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.6"`
+Install MariaDB Import and package dependencies:
+$ sudo yum install MariaDB-client
Configure APT package repositories:
+`$ sudo apt install wget
+$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+$ echo "935944a2ab2b2a48a47f68711b43ad2d698c97f1c3a7d074b34058060c2ad21b mariadb_repo_setup" \ | sha256sum -c -
+$ chmod +x mariadb_repo_setup
+$ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.6"$ sudo apt update`
+Install MariaDB Import and package dependencies:
+$ sudo apt install mariadb-client
Configure ZYpp package repositories:
+`$ sudo zypper install wget
+$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
+$ echo "935944a2ab2b2a48a47f68711b43ad2d698c97f1c3a7d074b34058060c2ad21b mariadb_repo_setup" \ | sha256sum -c -
+$ chmod +x mariadb_repo_setup
+$ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.6"`
+Install MariaDB Import and package dependencies:
+$ sudo zypper install MariaDB-client
The procedure to import data depends on the operating system.
+Use MariaDB Import with the connection information to import the data from the TSV or CSV file into your SkySQL database service:
+mariadb-import --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
+ --user DATABASE_USER --password \
+ --ssl-verify-server-cert \
+ --ssl-ca ~/PATH_TO_PEM_FILE \
+ --local \
+ --ignore-lines=1 \
+ accounts contacts.tsv
+
FULLY_QUALIFIED_DOMAIN_NAME
Ā with the Fully Qualified Domain Name of your serviceTCP_PORT
Ā with the read-write or read-only port of your serviceDATABASE_USER
Ā with the default username for your service, or the username you created~/PATH_TO_PEM_FILE
Ā with the path to the certificate authority chain (.pem) file-fields-terminated-by=,
accounts
)contacts
)Fix your executable search path.
+On Windows, MariaDB Import is not typically found in the executable search path by default. You must find its installation path, and add that path to the executable search path:
+$ SET "PATH=C:\Program Files\MariaDB 10.6\bin;%PATH%"
Determine theĀ connection parametersĀ for your SkySQL service.
+Use MariaDB Import with the connection information to import the data from the TSV or CSV file into your SkySQL database service:
+mariadb-import --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
+ --user DATABASE_USER --password \
+ --ssl-verify-server-cert \
+ --ssl-ca ~/PATH_TO_PEM_FILE \
+ --local \
+ --ignore-lines=1 \
+ accounts contacts.tsv
+
FULLY_QUALIFIED_DOMAIN_NAME
Ā with the Fully Qualified Domain Name of your serviceTCP_PORT
Ā with the read-write or read-only port of your serviceDATABASE_USER
Ā with the default username for your service, or the username you created~/PATH_TO_PEM_FILE
Ā with the path to the certificate authority chain (.pem) file-fields-terminated-by=,
accounts
)contacts
)The instructions provided above are written for MariaDB Import 10.4 and later, which uses the binary filename ofĀ mariadb-import
.
For MariaDB Import 10.3 and older, the binary filename wasĀ mysqlimport
. The instructions can be adapted for MariaDB Import 10.3 and older by executingĀ mysqlimport
Ā rather thanĀ mariadb-import
.
Databases can be migrated to SkySQL from many different database platforms, including Oracle, MySQL, PostgreSQL, Microsoft SQL Server, IBM DB2, and more
+To perform a lift-and-shift migration to SkySQL, use the following process:
+dump
(SQL)start_replication
procedure as noted below. SkySQL customers can receive assistance from SkySQL Inc when migrating a database to SkySQL:
+For assistance with a migration:
+Our SkyDBA team can help design a migration plan to suit your needs. We use a multi-step process to assist customers with migrations:
+For additional information, see "Migrate to MariaDB from Oracle".
+Click here for a detailed walk through of the steps involved.
+For assistance with a migration:
+To minimize downtime during migration, set up live replication from your source database to the SkySQL database. Follow these steps:
+Obtain Binlog File and Position: On the source database (MySQL or MariaDB), obtain the Binlog file name and its current position to track all database changes from a specific point in time.
+SHOW MASTER STATUS;
+
Dump the Source Database: Take a dump of your source database using mysqldump
or mariadb-dump
, ensuring to skip the mysql
table and handle the user dump separately to avoid issues with the default SkySQL user. Also, include triggers, procedures, views, and schedules in the dump.
mysqldump -u [username] -p --all-databases --ignore-table=mysql.user \
+ --routines --triggers --events --skip-lock-tables > dump.sql
+
Dump the User Table Separately: Dump the mysql.user
table separately to handle user data without affecting the default SkySQL user.
mysqldump -u [username] -p mysql user > mysql_user_dump.sql
+
Import the Dumps into SkySQL: Import the logical dumps (SQL files) into your SkySQL database, ensuring to load the user dump after the main dump.
+mariadb -u [username] -p [database_name] < dump.sql
+mariadb -u [username] -p mysql < mysql_user_dump.sql
+
Start Replication: Turn on replication using SkySQL stored procedures. There are procedures allowing you to set and start replication. See our documentation for details.
+CALL sky.replication_grants();
+CALL sky.start_replication();
+
Disable Foreign Key Checks: Temporarily disable foreign key checks during import to speed up the process.
+SET foreign_key_checks = 0;
+
Disable Binary Logging: If binary logging is not required during the import process, and you are using a standalone instance, it can potentially be disabled to improve performance. SkyDBA Services can assist with this as part of a detailed migration plan.
+Consistency Checks: Perform consistency checks on the source database before migration. Use a supported SQL client to connect to your SkySQL instance and run the following.
+CHECK TABLE [table_name] FOR UPGRADE;
+
Post-Import Validation: Validate the data integrity and consistency after the import.
+CHECKSUM TABLE [table_name];
+
Adjust Buffer Sizes: Temporarily increase buffer sizes to optimize the import performance. This can be done via the Configuration Manager in the portal.
+innodb_buffer_pool_size = 2G
+innodb_log_file_size = 512M
+
Parallel Dump and Import: Use tools that support parallel processing for dumping and importing data.
+mysqlpump -u [username] -p --default-parallelism=4 --add-drop-database \
+ --databases [database_name] > dump.sql
+
Incremental Backups: For large datasets, incremental backups can be used to minimize the amount of data to be transferred. SkyDBA Services can assist you with setting these up as part of a custom migration plan.
+Enable Detailed Logging: Enable detailed logging while testing the migration process to monitor and troubleshoot effectively. The slow_log can be enabled in the SkySQL configuration manager.
+Resource Monitoring: Use monitoring tools to track resource usage (CPU, memory, I/O) during the migration to ensure system stability. See our monitoring documentation for details.
+SkySQL customers can configure inbound replication from MySQL 5.7 to a compatible MariaDB running in SkySQL.
+For additional information about the stored procedures used to configure replication with Replicated Transactions services, see "SkySQL Replication Helper Procedures for Replicated Transactions".
+ + +On the external primary server, obtain the binary log file and position from which to start replication.
+When you want to start replication from the most recent transaction, the current binary log file position can be obtained by executing theĀ SHOWĀ MASTERĀ STATUS
Ā statement:
SHOW MASTER STATUS;
+
+`+------------------+----------+--------------+------------------+-------------------+
+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
++------------------+----------+--------------+------------------+-------------------+
+| mysql-bin.000001 | 154 | | | |
++------------------+----------+--------------+------------------+-------------------+
+
On the SkySQL service, configure the binary log file and position from which to start replication.
+The binary log file and position can be configured using theĀ sky.change_external_primary()
Ā stored procedure:
CALL sky.change_external_primary('mysql1.example.com', 3306, 'mysql-bin.000001', 154, false);
+
++--------------------------------------------------------------------------------------------------------------+
+| Run_this_grant_on_your_external_primary |
++--------------------------------------------------------------------------------------------------------------+
+| GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>'; |
++--------------------------------------------------------------------------------------------------------------+
+
This procedure will return the GRANT
statement you must run on the source DB.
On the external primary server, execute theĀ GRANT
Ā statement returned by the last step:
GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>';
+
On the SkySQL service, start replication.
+Replication can be started using theĀ sky.start_replication()
Ā stored procedure:
CALL sky.start_replication();
++----------------------------------------+
+| Message |
++----------------------------------------+
+| External replication running normally. |
++----------------------------------------+
+
On the SkySQL service, check replication status.
+Replication status can be checked using theĀ sky.replication_status()
Ā stored procedure:
CALL sky.replication_status()\G
+
+*************************** 1. row ***************************
+ Slave_IO_State: Waiting for master to send event
+ Master_Host: mariadb1.example.com
+ Master_User: skysql_replication
+ Master_Port: 3306
+ Connect_Retry: 60
+ Master_Log_File: mysql-bin.000001
+ Read_Master_Log_Pos: 462
+ Relay_Log_File: mariadb-relay-bin.000002
+ Relay_Log_Pos: 665
+ Relay_Master_Log_File: mysql-bin.000001
+ Slave_IO_Running: Yes
+ Slave_SQL_Running: Yes
+ Replicate_Do_DB:
+ Replicate_Ignore_DB:
+ Replicate_Do_Table:
+ Replicate_Ignore_Table:
+ Replicate_Wild_Do_Table:
+ Replicate_Wild_Ignore_Table:
+ Last_Errno: 0
+ Last_Error:
+ Skip_Counter: 0
+ Exec_Master_Log_Pos: 462
+ Relay_Log_Space: 985
+ Until_Condition: None
+ Until_Log_File:
+ Until_Log_Pos: 0
+ Master_SSL_Allowed: No
+ Master_SSL_CA_File:
+ Master_SSL_CA_Path:
+ Master_SSL_Cert:
+ Master_SSL_Cipher:
+ Master_SSL_Key:
+ Seconds_Behind_Master: 0
+ Master_SSL_Verify_Server_Cert: No
+ Last_IO_Errno: 0
+ Last_IO_Error:
+ Last_SQL_Errno: 0
+ Last_SQL_Error:
+ Replicate_Ignore_Server_Ids:
+ Master_Server_Id: 200
+ Master_SSL_Crl:
+ Master_SSL_Crlpath:
+ Using_Gtid: No
+ Gtid_IO_Pos:
+ Replicate_Do_Domain_Ids:
+ Replicate_Ignore_Domain_Ids:
+ Parallel_Mode: conservative
+ SQL_Delay: 0
+ SQL_Remaining_Delay: NULL
+ Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
+ Slave_DDL_Groups: 0
+Slave_Non_Transactional_Groups: 0
+ Slave_Transactional_Groups: 0
+
When replicating from another MariaDB database, you can use GTID based replication. The first two steps are different from MySQL.
+On the external primary server, obtain the GTID position from which to start replication.
+When you want to start replication from the most recent transaction, the current GTID position can be obtained by querying the value of theĀ gtid_current_pos
Ā system variable with theĀ SHOWĀ GLOBALĀ VARIABLES
Ā statement:
SHOW GLOBAL VARIABLES LIKE 'gtid_current_pos';
+
+`+------------------+---------+
+| Variable_name | Value |
++------------------+---------+
+| gtid_current_pos | 0-100-1 |
++------------------+---------+
+
On the SkySQL service, configure the GTID position from which to start replication.
+The GTID position can be configured using theĀ sky.change_external_primary_gtid()
Ā stored procedure:
CALL sky.change_external_primary_gtid('mariadb1.example.com', 3306, '0-100-1', false);
+
++--------------------------------------------------------------------------------------------------------------+
+| Run_this_grant_on_your_external_primary |
++--------------------------------------------------------------------------------------------------------------+
+| GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>'; |
++--------------------------------------------------------------------------------------------------------------+
+
The stored procedure returns aĀ GRANT
Ā statement that is used in the next step.
To configure inbound replication from an external primary server using MariaDB Server to your Replicated Transactions service in SkySQL, the following requirements must be met:
+SkySQL customers can receive assistance when importing data into a SkySQL service:
+SkySQL customers can configure outbound replication from a Replicated Transactions service to a compatible MariaDB Server running elsewhere - could be your data center, self-managed MariaDB DB on the cloud or even other managed services like AWS RDS.
+SkySQL uses stored procedures to configure replication to other MariaDB or MySQL database servers.
+For additional information about the stored procedures used to configure replication with Replicated Transactions services, see SkySQL Replication Helper Procedures for Replicated Transactions
+To configure outbound replication from your Replicated Transactions service in SkySQL to an external replica server using MariaDB Server, the following requirements must be met:
+With the default database admin user provided, create an external_replication user as seen below.
+CREATE USER 'replication_user'@'%' IDENTIFIED BY 'bigs3cret';
+GRANT REPLICATION SLAVE ON *.* TO āexternal_replicationā@'hostname';
+
On the SkySQL service, confirm that the new user has sufficient privileges by executingĀ
+SHOW GRANTS FOR 'external_replication'@'%';
+
+-------------+
+| Grants for external_replication@% |
++-------------+
+| GRANT REPLICATION SLAVE, SLAVE MONITOR ON *.* TO `external_replication`@`%` IDENTIFIED BY PASSWORD '*CCD3A959D6A004B9C3807B728BC2E55B67E10518' |
++-------------+
+
On the SkySQL Customer Portal, add the IP address of the external replica server to the SkySQL service'sĀ allowlist +- Click āManageāā āManage Allowlistā to add the IP address to the allowed list.
+ + +On the SkySQL service, obtain the GTID position from which to start replication.
+When you want to start replication from the most recent transaction, the current GTID position can be obtained by querying the value of theĀ 'gtid_current_pos:
+SHOW GLOBAL VARIABLES
+ LIKE 'gtid_current_pos';
+
`+------------------+-------------------+
+| Variable_name | Value |
++------------------+-------------------+
+| gtid_current_pos | 435700-435700-124 |
++------------------+-------------------+`
+
On the external replica server, configure the GTID position from which to start replication.
+The GTID position can be configured by setting theĀ 'gtid_slave_pos':
+SET GLOBAL gtid_slave_pos='435700-435700-124';
+
On the external replica server, configure replication using theĀ connection parameters for your SkySQL service.
+Replication can be configured using theĀ 'CHANGEĀ MASTERĀ TO' SQLĀ statement:
+CHANGE MASTER TO
+ MASTER_HOST='FULLY_QUALIFIED_DOMAIN_NAME',
+ MASTER_PORT=TCP_PORT,
+ MASTER_USER='external_replication',
+ MASTER_PASSWORD='my_password',
+ MASTER_SSL=1,
+ MASTER_SSL_CA='~/PATH_TO_PEM_FILE',
+ MASTER_USE_GTID=slave_pos;
+
FULLY_QUALIFIED_DOMAIN_NAME
Ā with the Fully Qualified Domain Name of your serviceTCP_PORT
Ā with the read-write or read-only port of your service~/PATH_TO_PEM_FILE
Ā with the path to the certificate authority chain (.pem) fileOn the external replica server, start replication.
+Replication can be started using theĀ 'STARTĀ REPLICA' SQLĀ statement:
+START REPLICA;
+
On the external replica server, check replication status.
+Replication status can be checked using theĀ 'SHOWĀ REPLICAĀ STATUS' SQLĀ statement:
+SHOW REPLICA STATUS \G
+
+*************************** 1. row ***************************
+ Slave_IO_State: Waiting for master to send event
+ Master_Host: my-service.mdb0002147.db.skysql.net
+ Master_User: external_replication
+ Master_Port: 5003
+ Connect_Retry: 60
+ Master_Log_File: mariadb-bin.000001
+ Read_Master_Log_Pos: 558
+ Relay_Log_File: mariadb-relay-bin.000002
+ Relay_Log_Pos: 674
+ Relay_Master_Log_File: mariadb-bin.000001
+ Slave_IO_Running: Yes
+ Slave_SQL_Running: Yes
+ Replicate_Do_DB:
+ Replicate_Ignore_DB:
+ Replicate_Do_Table:
+ Replicate_Ignore_Table:
+ Replicate_Wild_Do_Table:
+ Replicate_Wild_Ignore_Table:
+ Last_Errno: 0
+ Last_Error:
+ Skip_Counter: 0
+ Exec_Master_Log_Pos: 558
+ Relay_Log_Space: 985
+ Until_Condition: None
+ Until_Log_File:
+ Until_Log_Pos: 0
+ Master_SSL_Allowed: Yes
+ Master_SSL_CA_File: /var/lib/mysql/skysql_chain.pem
+ Master_SSL_CA_Path:
+ Master_SSL_Cert:
+ Master_SSL_Cipher:
+ Master_SSL_Key:
+ Seconds_Behind_Master: 0
+ Master_SSL_Verify_Server_Cert: No
+ Last_IO_Errno: 0
+ Last_IO_Error:
+ Last_SQL_Errno: 0
+ Last_SQL_Error:
+ Replicate_Ignore_Server_Ids:
+ Master_Server_Id: 435701
+ Master_SSL_Crl: /var/lib/mysql/skysql_chain.pem
+ Master_SSL_Crlpath:
+ Using_Gtid: Slave_Pos
+ Gtid_IO_Pos: 435700-435700-127
+ Replicate_Do_Domain_Ids:
+ Replicate_Ignore_Domain_Ids:
+ Parallel_Mode: optimistic
+ SQL_Delay: 0
+ SQL_Remaining_Delay: NULL
+ Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
+ Slave_DDL_Groups: 0
+Slave_Non_Transactional_Groups: 0
+ Slave_Transactional_Groups: 0
+
There are multiple options to copy/offload data from a SkySQL DB. You can do a logical dump(i.e. output all data and DDL as SQL) to your local machine. Or, dump large data sets securely using the SkySQL Backup service to your own S3 or GCS bucket.
+You can then use the offloaded data to resurrect the DB elsewhere. You can also optionally setup "outbound replication" to keep the new DB in sync with SkySQL.
+mariadb-dump
The mariadb-dump
utility is a powerful command-line tool that allows you to export databases, tables, or specific data from your MariaDB instance in SkySQL.
Ensure you have the mariadb-dump utility installed on your system. See here +Obtain the necessary connection details for your SkySQL instance, including the host, username, and password.
+To export all databases from your SkySQL instance, use the following command:
+mariadb-dump -h your_skysql_host -u your_username -p --all-databases > all_databases_backup.sql
+
-h your_skysql_host
: Specifies the host of your SkySQL instance.
+- -u your_username
: Specifies the username to connect to the SkySQL instance.
+- -p
: Prompts for the password for the specified username.
+- --all-databases
: Exports all databases in the SkySQL instance.
+- > all_databases_backup.sql
: Redirects the output to a file named all_databases_backup.sql.
+To export specific databases, list the database names after the connection details:
+mariadb-dump -h your_skysql_host -u your_username -p database1 database2 > selected_databases_backup.sql
+
database1 database2
: Replace with the names of the databases you want to export.`> selected_databases_backup.sql
: Redirects the output to a file named selected_databases_backup.sql.To export only the schema (structure) of a database without the data, use the --no-data option:
+mariadb-dump -h your_skysql_host -u your_username -p --no-data your_database > schema_backup.sql
+
--no-data
: Ensures that only the schema is exported, not the data.
+- your_database
: Replace with the name of the database whose schema you want to export.
+- > schema_backup.sql
: Redirects the output to a file named schema_backup.sql.
+The files exported by mariadb-dump are in plain text format and contain SQL statements. These files can be used to recreate the databases, tables, and data by executing the SQL statements in a MariaDB instance.
+Example of Exported File Content
+Here is a snippet of what an exported file might look like: +
-- MariaDB dump 10.16 Distrib 10.5.9-MariaDB, for debian-linux-gnu (x86_64)
+--
+-- Host: your_skysql_host Database:
+-- ------------------------------------------------------
+-- Server version 10.5.9-MariaDB-1:10.5.9+maria~focal
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Database: `your_database`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `your_table`
+--
+
+DROP TABLE IF EXISTS `your_table`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `your_table` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) DEFAULT NULL,
+ `created_at` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `your_table`
+--
+
+LOCK TABLES `your_table` WRITE;
+/*!40000 ALTER TABLE `your_table` DISABLE KEYS */;
+INSERT INTO `your_table` VALUES (1,'Example Name','2023-01-01 00:00:00'),(2,'Another Name','2023-01-02 00:00:00');
+/*!40000 ALTER TABLE `your_table` ENABLE KEYS */;
+UNLOCK TABLES;
+
Finally, here is the reference to the utility where you will find all theĀ many command-line options
+++Note
+Egress charges may apply when data is exported
+
UseĀ MariaDB Client with the connection information to export your schema from your SkySQL database service. Here is an example to export all rows from a single table:
+mariadb --host FULLY_QUALIFIED_DOMAIN_NAME --port TCP_PORT \
+ --user DATABASE_USER --password \
+ --ssl-verify-server-cert \
+ --default-character-set=utf8 \
+ --batch \
+ --skip-column-names \
+ --execute='SELECT * FROM accounts.contacts;' \
+ > contacts.tsv
+
FULLY_QUALIFIED_DOMAIN_NAME
Ā with the Fully Qualified Domain Name of your service.TCP_PORT
Ā with the read-write or read-only port of your service.DATABASE_USER
Ā with the default username for your service, or the username you created.-quickĀ command-line option
to disable result caching and reduce memory usage.-execute
. The SkySQL Backup service API allows you to perform logical and physical dumps of your SkySQL databases to external storage buckets such as Amazon S3 or Google Cloud Storage (GCS).
+To perform a logical dump of a SkySQL database to an S3 bucket, you need to make an API call to the SkySQL Backup service. Below is an example of how to do this.
+Example API Call for Logical Dump (The output is all SQL statements) +
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "logical",
+ "schedule": "once",
+ "service_id": "your_service_id",
+ "external_storage": {
+ "bucket": {
+ "path": "s3://your_s3_bucket_name/path/to/backup",
+ "credentials": "your_base64_encoded_credentials"
+ }
+ }
+}'
+
When databases are large and you want to move the data around securely this is likely the best option. To perform a physical dump of a SkySQL database to an S3 bucket, you need to make a similar API call but specify the backup type as "physical".
+Example API Call for Physical Dump +
curl --location 'https://api.skysql.com/skybackup/v1/backups/schedules' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "backup_type": "physical",
+ "schedule": "once",
+ "service_id": "your_service_id",
+ "external_storage": {
+ "bucket": {
+ "path": "s3://your_s3_bucket_name/path/to/backup",
+ "credentials": "your_base64_encoded_credentials"
+ }
+ }
+}'
+
Backups are always scheduled as jobs and the time taken will depend on the size of yourDB. To check the status of the initiated backups, you can use the following API call:
+Example API Call to Check Backup Status
+curl --location 'https://api.skysql.com/skybackup/v1/backups/status' \
+--header 'Content-Type: application/json' \
+--header 'Accept: application/json' \
+--header 'X-API-Key: ${API_KEY}' \
+--data '{
+ "service_id": "your_service_id"
+}'
+
SkySQL is a database-as-a-service (DBaaS) that was originally developed and managed by MariaDB Corporation. The cloud division (SkySQL) was later spun out of MariaDB into a independent company - SkySQL Inc. The team that developed SkySQL transitioned over to the new company.
+Our platform and experts handle the infrastructure needs, allowing you to focus on your core business.
+When you choose SkySQL, a full-featured DBaaS, you forego the capital expenditure of buying hardware, the delay of waiting for new systems to ship every time you need to scale-up or scale-out, and the overhead and opportunity-cost of tuning, monitoring, and upgrading your database. SkySQL also handles routine tasks such as nightly backups and infrastructure maintenance.
+And if you need ultimate control, and have the necessary skills and resources to hand-pick instances and tune configurations, we offer SkySQLĀ Power TierĀ to deliver all of the on-premises benefits without the capex (capital expense) and operational overhead.
+In Foundation Tier smaller databases launch in 2-4 mins. Power Tier deployments with isolated, dedicated Kubernetes environments can take up to 25 minutes. Subsequent database deployments will use the same Kubernetes environment and usually launch in 2-4 minutes.
+The real time benefits come every day after, when you're operating at scale. A failed database node can recover in a matter of seconds using Kubernetes self-healing, or instantly failover to alternate replicated server. Instead of an eight-hour bare metal rebuild as you might see on-premises or on other cloud platforms.
+SkySQL provides services backed by:
+No, SkySQL is dedicated to being the top choice for MariaDB. Our goal is to provide the best price-performance of any DBaaS, offer significant productivity improvements through automation, and serve as the most comprehensive end-to-end platform for all your database needs.
+We offer āfractional DBAsā - expert-maintained multi-cloud databases. We're glad to help with your move to SkySQL, whether you'reĀ migratingĀ from another database platform or looking toĀ lift-and-shiftĀ a MariaDB implementation to SkySQL.
+SkySQL is multi-cloud and as a full-featured DBaaS we handle all of the hardware and infrastructure needs.
+Services are currently available with a range ofĀ instance sizesĀ running on the following cloud service providers:
+Transactional services (such as our Replicated Transactions topology) operate on:
+SkySQL runs on Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), and MariaDB database products - Enterprise Server, MaxScale. MariaDB Enterprise Server enables a predictable development and operations experience through optimized builds, predictable release behavior, and vendor support.
+SkySQLĀ officially launchedĀ as a production-ready enterprise-grade DBaaS in 2020, after extensive pre-release testing.
+Yes. SkySQL delivers enterprise-grade cloud database services for mission-critical applications. SkySQL is built to make MariaDB Enterprise ready - optimized for security, stability, and reliability in demanding production environments. Multi-node database deployments feature a comprehensiveĀ SLA, High Availability (HA) features, and operations features.Ā Enterprise supportĀ options extend support to 24x7, with the additional option ofĀ SkyDBAĀ for reactive and proactive assistance from a team of expert DBAs.Ā Security featuresĀ are designed to meet the GRC and infosec challenges faced by modern applications. [//]: # , andĀ DPA (GDPR) and BAA (HIPAA)Ā are available.
+SkySQL is primarily designed for online applications and offers two topologies -
+You can chooseĀ topologies to match your workload requirements, cloud regions to match your latency and operating requirements, instance sizes,Ā andĀ support plan.
+Our platform features:
+Estimated SkySQL pricing is available from theĀ SkySQL portal. SkySQL pricing is very competitive and starts at about $100 per month for production grade databases.
+SkySQL pricing varies based on the selections made when youĀ launch a service. Examples of selections include provider, topology, instance and storage size, and region.
+The pricing shown is not a quote and does not guarantee the cost for your actual use of SkySQL services, as is shown on monthly invoices. The cost estimate can vary from your actual costs forĀ several reasons.
+No. Purchase of SkySQL service includesĀ supportĀ and access toĀ MariaDB database products on SkySQL.
+Yes. SkySQL is listed in the Google Cloud Marketplace. Customers have the ability to retire their GCP commitment with a SkySQL subscription via the Marketplace.
+ +Contact usĀ if you have further questions.
+Yes. SkySQL is an AWS partner network. Customers can retire their AWS commitment with a SkySQL subscription via the AWS Marketplace.
+See the AWS Marketplace listing
+Contact usĀ if you have further questions.
+Estimated SkySQL pricing information is shown when youĀ create a serviceĀ based on the selections you make at launch time, such as topology, region, and instance size. PleaseĀ contact usĀ for assistance in cost estimation, includingĀ supportĀ andĀ Power Tier.
+SkySQL pricing includes instances for a specific service topology, and monitoring, and also includes management features, e.g., backups, upgrades, patch installs, etc.Ā Some factors, such as object storage and network egress which are variable and usage-dependent, are not included in estimated pricing. We typically pass-thru the cloud provider costs with no additional markup.
+Add-ons are available to optimize your SkySQL experience:
+Yes. Discounts are typically offered for one-year and three-year commitments. PleaseĀ contact usĀ for more information.
+SkySQL accepts payment byĀ major credit card and through remittance accounts
+SkySQL accepts all major credit cards. Specifically, we accept Visa, Mastercard, American Express, Discover, and Diners Club payments from customers worldwide.
+Note
+SkySQL does not store any of your credit card information. We use Stripe to manage all credit card transactions. Stripe is a widely used payment processing platform that enables businesses to accept credit card payments securely
+Contact usĀ to have your account set up for payment by wire transfer or ACH.
+SkySQL contract customers can pre-fund their account.Ā Contact usĀ for more information.
+SkySQL charges are paid using a credit card, or via wire transfer/ACH upon invoice in the case of remittance accounts.
+Yes. We offer direct purchase through the AWS Marketplace or we can craft a "private offer" to customize a subscription.
+See the AWS Marketplace listing
+Contact usĀ if you have further questions.
+Yes. SkySQL is an AWS partner network. Customers can retire their AWS commitment with a SkySQL subscription via the AWS Marketplace.
+See the AWS Marketplace listing
+Contact usĀ if you have further questions.
+Yes. We offer direct purchase through the Google Marketplace or we can craft a "private offer" to customize a subscription.
+ +Contact usĀ if you have further questions.
+Yes. SkySQL is listed in the Google Cloud Marketplace. Customers have the ability to retire their GCP commitment with a SkySQL subscription via the Marketplace.
+ +Contact usĀ if you have further questions.
+If youĀ stop a SkySQL service, you will continue to be charged for storage, since your data is not deleted. Instance and egress charges will stop until the instance is started again.
+Current month'sĀ estimated chargesĀ can be viewed on the SkySQL portal dashboard. Detailed information is also available under āBillingā where you can see the breakdown for all your current charges - you can see resource usage by Service Name (your individual DB clusters) or by resource type. Variable charges such as object storage and network egress are updated the day prior to the last day of the month and are available in the invoice. You can also use the SkySQL REST API to fetch usage and billing data.
+SkySQL invoices are sent monthly and include a detailed breakdown of usage, pricing, and taxes. For Team accounts, only the Team owner has access to Account Information.
+Invoices for SkySQL are sent by email on subscription renewal. Subscription renewal occurs on the last day of the month. Accounts using a credit card are charged at this time.
+MariaDB will bill for VAT and/or taxes in applicable jurisdictions. Customers are responsible for paying all applicable taxes and fees. See theĀ SkySQL Terms of UseĀ for additional information.
+Current month'sĀ estimated charges, including coupons and service credits, can be viewed on theĀ Account InformationĀ page and are updated six times per day.
+In the event of service credits issued based onĀ [SLA]https://skysql.com/sla/), service credits will be included in coupons and service credits on theĀ Account InformationĀ page.
+Instances can beĀ stoppedĀ to save money. While stopped, additional instance and egress charges will not accrue, but you will continue to be charged for storage.
+ContactĀ info@skysql.comĀ with billing questions.
+SkySQL runs full backups automatically each night. SkySQL also allows on-demand backups (a Preview feature)
+No. Backup frequency and schedule are not customer configurable. SkySQL Power Tier customers should contact us if alternate backup frequency or schedule is required.
+No. Data is not sent to another country. All data is managed within the same region where your database is running for data sovereignty.
+No.
+No.
+MariaDB Enterprise Backup (mariabackup) is used for Replicated Transactions and Single Node Transactions service backups. MariaDB Enterprise Backup breaks up backups into non-blocking stages so writes and schema changes can occur during backups.
+The backup service provides support for incremental backups. It is in preview state (Dec 2023).
+Backups for running and stopped services are retained for 30 days. If a service is deleted, no further backups for that service are produced and backups on hand are purged after 7 days.
+No. Backup retention is not customer configurable. SkySQL Power Tier customers should contact us if an alternate retention schedule is required.
+Request data restore by creating a support case in theĀ Customer Support Portal. Please state what you need restored, and the desired restore point. Self service Restore functionality is available using the Backup service and API (in Preview as of Dec 2023)
+Yes, byĀ support case.
+By default, full and complete backup restoration is available. To enable point-in-time recovery, services must be configured in advance for additional binary log retention.Ā Point-in-time recovery (PITR)Ā configuration is available toĀ Power TierĀ customers.
+Yes, byĀ support case
+Yes, byĀ support case
+Yes, you can retrieve your database. No, there is no vendor lock. Your data is your data. Create aĀ support caseĀ for access to a backup.
+Yes. All SkySQL data is encrypted on disk.
+By default, SkySQL services feature data-in-transit encryption for client connections.
+By default, server-to-server communications between the nodes of a SkySQL service are protected with data-in-transit encryption.
+For additional information, see "Data-in-Transit Encryption".
+Yes. By default, SkySQL requires client connections via TLS (TLS 1.2, TLS 1.3).
+SkySQL supportsĀ disabling SSL/TLS via the Portal or using the API.
+SkySQL on Amazon AWS benefits fromĀ Amazon EBS encryption, which is AES256.
+SkySQL on Google GCP leverages Google'sĀ default encryption, which is AES256 or AES128.
+TLS 1.2, and TLS 1.3 are supported.
+TLS certificates expire every two years.
+MariaDB Corporation leverages HashiCorp Vault for certificate and key management. Certificates and keys are not customer-configurable.
+No. SkySQL supports server-side certificates. Database users are authenticated by standard password authentication, LDAP, and/or Two-Factor Authentication (2FA).
+No. While MariaDB Enterprise Server includes ed25519 support, SkySQL leverages a version of MariaDB MaxScale which is not ed25519-compatible.
+A certificate authority chain is provided to allow your client to establish a secure and encrypted connection to a SkySQL database service, confirming the authenticity of the server certificate.
+Cryptography libraries are included in our standard release process, and vulnerability scanning is conducted for each release.
+Yes. The decision to delete your running service rests with you and your business. Please consider production impacts before deleting a service. SkySQL permits the on-demand deletion of running and stopped services.
+No. The launch process must complete before deletion is permitted.
+All data residing on a service's storage is deleted at time of service deletion. Backups for deleted services are purged after 7 days.
+Maybe. If you contact us before the system completes data deletion, yes, we can recover. Backups for deleted services are purged after 7 days.
+No. You should download your data so you have a local copy before you delete the service.
+No. SkySQL is hosted on public cloud provider systems.
+Yes. If you would like backups purged, pleaseĀ create a support case
+You can SkySQL Monitoring after launching a service, then clicking the "Monitoring" link in the SkySQL main menu (left navigation).
+SkySQL Monitoring covers status and metrics specific to a service and its servers. AĀ complete list of chartsĀ is provided.
+SkySQL Incās Support and SRE teams are alerted if a SkySQL service becomes unavailable or when serious issues are detected (e.g. disk is 90% utilized).
+Additionally, SkySQL automatically turns on several sensible alerting rules so the customer can also be alerted.
+SkySQL Monitoring includes alerting features, which allow configurable alerting rules, notification channels, and notification criteria. These settings are managed from the SkySQL Monitoring interface. You can SkySQL Monitoring after launching a service by clicking the "Monitoring" link in the SkySQL main menu (left navigation).
+SkySQL customers can contact us via theĀ Customer Support Portal.
+If you are not yet a SkySQL customer, pleaseĀ contact usĀ with questions.
+Included with Foundation Tier services:
+Available to Power Tier customers:
+SeeĀ full details of our support options.
+Yes.Ā Enterprise Support levels are available for customers requiring 24x7x365 support (24 hours per day, 7 days per week, 365 (or 366) days per year).
+Yes. SkySQL infrastructure is fully managed, including many typical operations features such as automated nightly backups and monitoring.
+Standard support is included with Foundation Tier services. Activities like performance tuning and assistance with schema change is not included in standard support. Power Tier customers choose between Enterprise and Platinum support options, which include consultative support.
+Our optionalĀ SkyDBAĀ service is available for Enterprise and Platinum support customers, and SkyDBA customers receive both reactive (break/fix) and proactive (analyze/enhance) assistance.
+SkySQL offers a full range of professional services, including:
+Contact SkySQL IncĀ or email us at info@skysql.com
+SkySQL is available for immediate use.Ā Get started now. If you would like assistance from sales,Ā contact us.
+Billing questions can be directed to Billing Team.
+To aid our continuous improvement efforts, we encourage you to provide feedback on our documentation and your experiences using it via the following:
+SkySQL customers can contact us via theĀ Support Portal. Customers can also use the Support email.
+ + + + + + + + + + + + + +SkyDBA is a "Fractional" DBA Service, a cost-effective solution for businesses that need database administration but do not require a full-time database administrator. This service provides access to a team of experienced database administrators on a part-time basis. Whether it's for routine maintenance, troubleshooting, or strategic advice, SkyDBA's Fractional DBA Service ensures that expert assistance is just a message away. This approach not only saves the expense of a full-time employee but also provides a higher level of service due to the collective knowledge and experience of the SkyDBA team.
+Note
+SkyDBA is an optional service that you can purchase. You can use this service regardless of the Tier (Foundation or Power) used to deploy DB services. For more information, please contact SkySQL support
+Here is what you can expect from this āadd-onā service.
+Expert advice available on migration methodology and procedures.
+SkyDBAs offers tailored query analysis and professional tuning upon request. Our team provides expert assistance in implementing low-impact table alterations when necessary.
+With a SkyDBA subscription, your customer success manager can schedule quarterly business reviews with someone from the SkyDBA team to review items such as:
+Work with the SkyDBA team to ensure that your environment is safe and secure. This includes auditing of users and grants.
+SkyDBAs monitors instances for potential business impact events. Upon detection, events are internally flagged. We investigate and collaborate with your team as needed for swift resolution.
+With a SkyDBA Subscription, our database experts can assist with tasks such as analyzing core dumps, system logs and other similar technical issues that require expert database server knowledge.
+Partner with SkyDBAs to create tailored backup stratagies to meet your organization's Recovery Time Objective (RTO) and Recovery Point Objective (RPO) goals.
+SkyDBAs can assists in data recovery from backups or other sources, providing expertise for analysis. Additionally, as requestied, SkyDBA can conduct annual Disaster Recovery exercises upon request to ensure preparedness. It's important to note that running a recovery to a secondary service may require additional compute resources.
+ + + + + + + + + + + + + +Note
+SkySQL, unlike hyperscalers, deploy replicas in a active-active configuration. When primary crashes our intelligent proxy allows us to failover near instantly to an alternate replica. Or, failback when the original primary recovers. Ensuring data consistency even when replicas have a replication lag through ācausal readsā, or transaction replay. Our underlying k8s based operator has smarts to rebuild replicas that lag a lot using cloud native snapshots.
+For HA and Load balancing client requests there is no configuration required. Just launch a replicated topology
DB service. SkySQL automatically starts a intelligent proxy that does all the heavy lifting. Detecting failures and replaying transactions, awareness of who the primary is at all times, balancing load and much more.
You should be aware of the causal_reads
configuration as outlined below. The sections below provide a more detailed description of how SkySQL delivers on HA and scaling across replicas.
To provide high resiliency we try to protect every layer of the stack ā disks, compute, Zones/cloud regions, network and even the load balancer accepting incoming DB connections. The graphic below depicts this architecture. LetŹ¼s peel the onion a bit.
+All Cloud databases configured for HA replicate the data across multiple availability zones (AZ). Ensuring your data is protected against data center failures. This is necessary, but not sufficient. In SkySQL, data is always isolated from compute on the underlying block storage device of each AZ. This device keeps a copy of each block on multiple servers providing the first layer of protection against component failures or corruption.
+The deployment of DB servers occurs within containers orchestrated by Kubernetes (k8s). In the event of cloud instance failures, SkySQLās health monitoring prompts k8s to revive the container in an alternate instance, seamlessly reconnecting to the same storage volume. AWS RDS, for example, runs MariaDB on VMs requiring a replicated setup for any protection against node failures.
+While hardware failures are a possibility, a more common scenario we see in practice involves a DB crash due to resource exhaustion or timeoutsāsuch as running out of allocated temp space due to rogue queries or an unplanned large spike in data load. In such instances, it is crucial for application connections to smoothly transition to an alternate server.
+Behind the scenes, SkySQL consistently directs SQL through its intelligent proxy. This proxy not only continuously monitors servers for failures but also remains acutely aware of any replication lags in the replica servers. Should a primary server fail, an immediate election process ensues to select a replica with the least lag. Simultaneously, attempts are made to flush any pending events, ensuring synchronization and full data consistency. Any pending transactions on the primary server are also replayed. Collectively, these measures enable applications to operate without connection-level interruptions or SQL exceptions. Achieving heightened levels of High Availability (HA) is effortlessly attainable by expanding the number of replicas. Replication can even extend across different cloud providers or to a self-managed (Ė®peace of mindĖ®) replica within a customerŹ¼s own environment.
+Cloud offerings of open source relational databases often achieve scalability by distributing data across a cluster of nodes, often relying on a replication model where āwritesā to the primary node are asynchronously transmitted to one or more replicas. Typically, the onus is on the customer to manage the distribution of traffic across the cluster, either through client application logic or by configuring a proxy service. Several customers have told us that this is simply too big a challenge, effectively capping the scalability of these cloud solutions. Even when customers successfully navigate this challenge, with this approach data consistency might not be uniform across the entire cluster at any given moment.
+When application client connections are evenly load balanced across these replicas for āreads,ā the application must either tolerate potentially stale reads or consistently direct all requests to the primary, severely limiting scalability. Replicas are relegated to offline tasks like reporting ā a common scenario from our observations in AWS RDS.
+Contrastingly, in SkySQL, the intelligent proxy provides consistency options without compromising its ability to load balance requests across replicas, supporting both ācausalā and āstrong, globalā consistency models. Letās delve deeper.
+Causal consistency ensures that āreadsā are fresh only concerning the writes they are causally dependent on. For instance, when an app client executes a āwriteā followed by a āread,ā it expects to see the changed value, causally dependent on the preceding āwrite.ā This sequence may need to be satisfied exclusively by the primary if the replicas lag behind. Concurrent clients, however, continue to be load balanced across all servers.
+This model functions optimally when application clients utilize sticky SQL connections. However, in the modern landscape where applications are often distributed (micro services) and rely on connection pooling frameworks, a āwriteā and the subsequent āreadā might occur on different connections. To ensure consistent reads, awareness of the ālagā at a global level is imperative. Fortunately, this is seamlessly achieved with a simple switch in SkySQL. If the āwriteā rate is moderate and the replicas can keep up (a prevalent scenario in practice), clients continue to uniformly utilize the entire cluster.
+Causal consistency is configured in the SkySQL Configuration Manager, maxscale settings (applies to Replicated clusters only) +You can configure causal reads using the SkySQL configuration Manager. Look for maxscale properties and search for causal_reads.
+You can also configure causal_reads_timeout so any reads on replicas don't wait too long for a consistent read.
+Finally, you can configure the max_slave_replication_lag which determines the max lag for any read. The load balancer will only routes to slaves with a lag less than this value.
+Unlike RDS or GCP, where the standby is typically unused for client requests (wasting resources), SkySQL maximizes the available compute power across all nodes, delivering unparalleled cost effectiveness.
+A notable feature enhancing performance is the āRead-Write Splitting,ā allowing for custom routing to achieve consistently lower latencies for specific application patterns. For example, point queries and index-optimized queries can be directed to select nodes hosting frequently accessed data, while more resource-intensive scan-aggregation class queries (such as those for reporting dashboards or complex queries based on end-user selections of historical data) can be routed to a separate set of nodes. These routing strategies effectively segment actively used data sets, optimizing the DB buffer cache and resulting in lower latencies.
+The implementation of these routing strategies is straightforward, primarily through the use of āHint Filters.ā Standard SQL comments are utilized to customize routing to the appropriate server. Additional details on Hint Filters and Read-Write Splitting can be found in the MariaDB documentation.
+In SkySQL you can control routing using 2 strategies:
+read port
for the service: Typically this will be port 3307. When using this port the request (read_only) will be load balanced only across the available replicas. The major cloud providers tout disaster recover across regions, ensuring resilience against natural disasters impacting an entire geographical region. But in reality, such disasters are exceedingly rare. WhatŹ¼s far more common are technical issues impacting an entire region for a specific cloud provider. For instance, weāve encountered DNS-level failures in GCP regions, rendering all services dependent on DNS, including SkySQL, inaccessible.
+One effective strategy to mitigate such risks is to replicate data to a data center owned by a different cloud provider within the same geographical area, minimizing network latencies. Disaster recovery across cloud providers is of course something an individual provider such as AWS or GCP simply donŹ¼t support. Alternatively, customers can maintain their own āstandbyā database for emergenciesāan environment entirely under their control, ensuring a near-real time copy of the data at all times.
+SkySQL empowers users to configure āexternalā replicas that can run anywhere, offering flexibility and resilience.
+To facilitate this, SkySQL provides several built-in stored procedures for configuring both āoutboundā and āinboundā replication to any compatible MariaDB or MySQL server environment. This flexibility allows users to tailor their disaster recovery strategy based on their specific needs, whether replicating across regions, cloud providers, or maintaining self-managed standby environments.
+ + + + + + + + + + + + + +Launch page can be accessed at Launch
+ +Launch Service
+While making launch-time selections, your selections and estimated costs are shown on the right panel.
+To launch a SkySQL service from theĀ Portal:
++ Launch New Service
button.Transations
Enterprise Server Single Node
or Enterprise Server With Replica(s)
aws
, Google Cloud
or Azure
AMD64
, additionally ARM64
for AWS Graviton
.After initiating service launch, the service will be shown on theĀ PortalĀ Dashboard.
+AĀ notificationĀ will be sent at time of service launch initiation and when service launch completes.
+ + + + + + + + + + + + + +SkySQL's self-service management features enable authorized accounts to launch cloud databases, start and stop cloud databases, delete cloud databases, apply database configuration changes, and configure the cloud database's IP firewall.
+Self-serviceĀ user managementĀ features enable you to define role-based access for your team to jointly manage SkySQL resources.
+Stop Service
+To stop a service:
+MANAGE
button (at right) for the desired service.The service will be stopped. You will only be charged for storage on a stopped service.
+NotificationsĀ will be generated when this operation is initiated and when the operation is performed.
+Start Service
+To start a service:
+The service will be started. Service start may take up to 10-15 minutes. The normal billing cycle for the service will resume.
+NotificationsĀ will be generated when this operation is initiated and when the operation is performed.
+Service - Horizontal Scaling
+Horizontal scaling is performed by scaling nodes In (reducing node count) or Out (increasing node count).
+To scale nodes horizontally:
+The service immediately goes into scaling status.
+NotificationsĀ will be generated when this operation is initiated and when the operation is performed.
+Service - Vertical Scaling
+Vertical scaling is performed by scaling nodes Up (increasing node size) or Down (decreasing node size).
+To scale nodes vertically:
+The service immediately goes into scaling status.
+NotificationsĀ will be generated when this operation is initiated and when the operation is performed.
+Service - Scale Storage
+To expand block storage capacity:
+Storage scaling is subject to a 6 hour cooldown period.
+Storage upgrades are not reversible.
+Service - Delete
+To delete a service:
+Your service and all its data will be deleted. This operation is non-reversible.
+NotificationsĀ will be generated when this operation is initiated and when the operation is performed.
+Actions performed through the Portal will generate a notification.
+One notification is generated when an action is initiated.
+Additional notifications are generated to convey status as the action is carried out by the system.
+To access current notifications:
+A menu of recent notifications will be displayed.
+The bell icon will include a red dot indicator when a new notification is present. This indicator can be cleared by clicking the "Clear all" link.
+ +Notifications
+To view historical notifications, click the "View more" link at the bottom of the menu. When viewing historical notifications, notifications can be filtered by category and time frame.
+ +Notifications - current and historical
+Alerts
You can configure the notifications delivered to your email address from User Preferences.
+To access User Preferences:
+Profile
.Notification preferences
section.From User Preferences you can specify your notification preferences:
+User Preferences
+In addition to display in the Portal, notifications can also be delivered by email.
+Notification Channels define who receives what type of notifications.
+To access Notification Channel settings:
+Notification Channels
+To add a Notification Channel, from the Notification Channel settings interface:
+Notification Channels - Adding a Channel
+To remove a Notification Channel, from the Notification Channel settings interface:
+To modify a Notification Channel, from the Notification Channel settings interface:
+AfterĀ service launch, a detailed summary of the service can be accessed in the Service Details interface.
+Service Details
+Service details vary based on topology.
+Service details may include:
+The available panels are :
++Monitoring page
+This panel shows the ratio between the types of SQL statements executed by the service during the selected time interval.
+This panel shows the CPU usage for each server node during the selected time interval.
+This panel shows the queries per second (QPS) executed by the server node during the selected time interval.
+This panel shows the number of used and aborted connections for each ES node along with the max_connections value.
+This panel shows summarized values for certain replication-related metadata to help determine if any replica ES nodes encountered replication issues during the selected time interval.
+This panel shows average values for certain replication-related metadata to help determine if the replica ES nodes are currently lagging behind the primary ES node.
+This panel shows the amount of storage space used (as the usage percentage, actual size, and total size) by each server node.
+This panel shows the amount of storage space used by each server node during the selected time interval.
+ +This panel shows the Global Transaction ID (GTID) for each ES node during the selected time interval.
+This panel shows the average number of seconds that the replica ES nodes lagged behind the primary ES node during the selected time interval.
+This panel shows the current binary log position of the replica SQL thread for each ES node during the selected time interval.
+This panel shows the current binary log position of the replica I/O thread for each ES node during the selected time interval.
+ +This panel shows the top 30 statement types that were most frequently executed by all ES nodes during the selected time interval.
+This panel shows the top 30 statement types that were most frequently executed by the ES node during the selected time interval.
+This panel shows the top 30 statement types that were most frequently executed by all ES and Xpand nodes in 1 hour intervals over the past 24 hours.
+This panel shows the top 30 statement types that were most frequently executed by the ES node in 1 hour intervals over the past 24 hours.
+This panel shows the number of queries per second (QPS) executed by all ES nodes during the selected time interval.
+This panel shows the number of slow queries executed by all ES nodes during the selected time interval.
+This panel shows the number of slow queries executed by the ES node during the selected time interval.
+This panel shows the number of queries and questions per second executed by the ES node during the selected time interval.
+This panel shows the number of client threads running on all ES nodes during the selected time interval.
+This panel shows the number of client threads connected and running on the ES node during the selected time interval.
+ +This panel shows the number of clients connected to all MaxScale nodes during the selected time interval.
+This panel shows the number of client connections open between the MaxScale node and each ES node during the selected time interval.
+This panel shows the number of clients connected to the ES node during the selected time interval.
+This panel shows the number of connections aborted by the ES node during the selected time interval.
+This panel shows the number of table locks requested by all ES nodes during the selected time interval.
+This panel shows the number of table locks requested by the ES node during the selected time interval.
+This panel shows the number of tables opened by the database servers on all ES nodes during the selected time interval.
+This panel shows the number of tables opened by the database server on the ES node during the selected time interval.
+This panel shows the number of tables that have been opened by all ES nodes during the selected time interval.
+ +This panel shows the CPU usage for each server node during the selected time interval.
+This panel shows memory usage details for all ES nodes during the selected time interval.
+This panel shows the total number of bytes read from the ES node's file system during the selected time interval.
+This panel shows the total number of bytes written to the ES node's file system during the selected time interval.
+This panel shows the total number of bytes written to or read from the ES node's file system during the selected time interval.
+This panel shows the number of input/output operations per second performed by the ES node during the selected time interval.
+This panel shows the total number of reads performed from the ES node's file system during the selected time interval.
+This panel shows the total number of writes performed from the ES node's file system during the selected time interval.
+This panel shows the amount of data received over the network by the operating systems on all ES nodes during the selected time interval.
+This panel shows the amount of data sent over the network by the operating systems on all ES nodes during the selected time interval.
+This panel shows the amount of data sent and received over the network by the database servers on all ES nodes during the selected time interval.
+This panel shows the amount of data sent and received over the network by the database server on the ES node during the selected time interval.
+This panel shows the amount of data sent and received over the network by the operating system on the ES node during the selected time interval.
+This panel shows the amount of data sent and received over the network per hour by the database servers on all ES nodes over the past 24 hours.
+This panel shows the amount of data sent and received over the network per hour by the database server on the ES node over the past 24 hours.
+This panel shows the number of network errors encountered by all ES nodes during the selected time interval.
+This panel shows the number of network errors encountered by the ES node during the selected time interval.
+This panel shows the number of network packets dropped by all ES nodes during the selected time interval.
+This panel shows the number of network packets dropped by the ES node during the selected time interval.
+This panel shows the current CPU usage for the ES or Xpand node.
+This panel shows the current memory usage details for the ES or Xpand node.
+This panel shows memory usage details for the ES or Xpand node during the selected time interval.
+This panel shows the current size of the InnoDB buffer pool for the ES node in two units: the absolute size and the percentage of the server's usable memory.
+This panel shows the current number of client connections as a percentage of the ES node's max_connections value.
+This panel shows the number of bytes per second read and written by InnoDB during the selected time interval.
+This panel shows the total number of rows written and read per second by the ES node during the selected time interval.
+This panel shows the number of client connections to the ES node during the selected time interval.
+This panel shows the number of files opened per second by the database server on the ES node during the selected time interval.
+This panel shows the number of files opened by the database server on the ES node during the selected time interval.
+This panel shows the number of transaction-related handlers created by the ES node during the selected time interval.
+This panel shows the number of temporary tables created by the ES node during the selected time interval.
+This panel shows the number of threads created and cached for re-use on the ES node during the selected time interval.
+This panel shows the activity of the table open cache on the ES node during the selected time interval.
+This panel shows how many table definitions were cached by the ES node during the selected time interval.
+This panel shows memory usage details for the ES node during the selected time interval.
+This panel shows how much memory the ES node used for the InnoDB buffer pool, InnoDB log buffer, MyISAM key buffer, and query cache during the selected time interval.
+This panel shows memory usage details for the MaxScale node during the selected time interval.
+This panel shows the number of read and write operations per second that were handled by the threads on the MaxScale node during the selected time interval.
+This panel shows the number of threads currently used by the MaxScale node.
+This panel lists the modules installed on the MaxScale node.
+This panel shows the number of client connections closed by the MaxScale node during the selected time interval.
+This panel shows the number of errors encountered by threads on the MaxScale node during the selected time interval.
+This panel shows the total event queue length for all threads on the MaxScale node during the selected time interval.
+This panel shows the number of descriptors used by the MaxScale node during the selected time interval.
+This panel shows the longest time the MaxScale node waited for an I/O event during the selected time interval.
+This panel shows the number of clients connected to the MaxScale node during the selected time interval.
+This panel shows the number of database server connections open between the MaxScale node and each ES or Xpand node during the selected time interval.
+This panel shows the current resident set size (RSS) of the MaxScale process.
+This panel shows the current stack size of the MaxScale node.
+ + + + + + + + + + + + + +From the SkySQL Portal, you can launch, monitor, and manage your SkySQL services.
+You can access the Portal here
+From the Dashboard, you can see a list of your SkySQL services and status information for each service.
+From a different view, the Dashboard can be accessed by clicking the "Dashboard" link in the main menu (left navigation in the Portal).
+To launch a new service, click the "+ Launch New Service" button on the Dashboard.
+See "Service Launch" for details on the service launch process and launch-time selections.
+Service-specific interfaces are available from the Dashboard by clicking on the service name for the desired service.
+Service-specific interfaces will vary by topology.
+Service-specific interfaces are provided to:
+From the Dashboard, the details needed to connect to your SkySQL service can be seen by clicking on the "CONNECT" button for the desired service.
+See "Client Connections" for details on how to connect to a service.
+From the Dashboard, the "MANAGE" button for a service provides access to:
+The Dashboard includes a Spending gauge to indicate current charges. More detailed billing information can be accessed by clicking on the Spending gauge.
+Alternatively, you can access detailed billing and invoice information by clicking on your name in the upper-right corner of the interface, then select "Billing" from the menu.
+See "Billing" for additional details.
+The Dashboard includes monitoring gauges for Current SQL Commands, CPU Load, and QPS (Queries Per Second). More detailed monitoring can be accessed by clicking on one of these gauges.
+Alternatively, you can access detailed server and service monitoring by clicking on the service name from the Dashboard, then accessing the Monitoring tab (the default view).
+See "Monitoring" for additional details.
+The Dashboard includes the count of active monitoring alerts for your service. More detailed alert information can be accessed by clicking on the Alerts gauge.
+Alternatively, you can access monitoring alerts by clicking the "Alerts" link in the main menu (left navigation in the Portal).
+Server log files can be accessed by clicking the "Logs" link in the main menu (left navigation in the Portal).
+These settings can be accessed by clicking the "Settings" link in the main menu (left navigation in the Portal):
+Actions performed through the Portal will generate a notification.
+To view current notifications, click the bell icon in the upper-right corner of the interface.
+See "Notifications" for additional details.
+To customize your email notification preferences, click your name in the upper-right corner of the interface, then choose "User preferences".
+See "Notifications" for additional details.
+To log out from SkySQL, click your name in the upper-right corner of the interface, then choose "Logout" from the menu.
+ + + + + + + + + + + + + +This walkthrough explains how to launch database services and manage the lifecycle of database services using the SkySQL DBaaS REST API.
+Go to SkySQL API Key management page: https://app.skysql.com/user-profile/api-keys and generate an API key
+Export the value from the token field to an environment variable $API_KEY
+$ export API_KEY='... key data ...'
+
TheĀ API_KEY
Ā environment variable will be used in the subsequent steps.
Use it on subsequent request, e.g: +
curl --request GET 'https://api.skysql.com/provisioning/v1/services' \
+ --header "X-API-Key: $API_KEY"
+
Note
+You can use the Swagger docs site we host we try out the API OR +Follow the instructions below to try the API using your command Shell
+You can use the API Documentation here and directly try out the APIs in your browser.
+All you need is to click āAuthorizeā and type in <supply your API key here>
Note
+** Pre-requisites for code below **
+The examples below useĀ curlĀ as the REST client.Ā curlĀ is available for Linux, macOS, and MS Windows. Of course, you can use any language client that supports invoking REST over HTTP. +Examples below also use jq, a JSON parsing utility.Ā jqĀ is available for Linux, macOS, and MS Windows. Install jq then proceed.
+The examples also make use ofĀ teeĀ to save the response JSON data to a file while also allowing it to be piped toĀ jqĀ for output. Both Linux and macOS supportĀ teeĀ as described in the examples. On MS Windows, Powershell has aĀ teeĀ command that requires theĀ -filepathĀ option to be inserted prior to the filename.
+TheĀ chmodĀ command is used to make a file private to the current user. If your environment doesn't supportĀ chmod, you can set the file's permissions using other means.
+The examples also make use of exported variables andĀ ${VARIABLE_NAME}Ā variable references that are compatible with Bourne-like shells (such asĀ sh,Ā bash, andĀ zsh). On MS Windows, you will need to adapt these instructions if you are not using a Bourne-like shell. For example, you can copy just theĀ jqĀ part of an export command (from inside the backticks), run that on its own, and then copy/paste the resulting string into a variable assignment for your shell.
+Finally, the examples use a backslash at the end of some of the lines to indicate to the shell that a command spans multiple lines. If your shell doesn't allow this, remove each trailing backslash character and join the following line to the end of the current line.
+When your new service is created, your client can only connect through the service's firewall if the client IP address is in the service's IP allowlist.
+Before creating the new service, determine the public IP address of your client host and save it to theĀ SKYSQL_CLIENT_IP
Ā environment variable.
If you are not sure of your public IP address, you can use a lookup service, such asĀ checkip.amazonaws.com
:
$ export SKYSQL_CLIENT_IP=`curl -sS checkip.amazonaws.com`
+
To launch a service:
+request-service.json
:cat > request-service.json <<EOF
+{
+ "service_type": "transactional",
+ "topology": "es-single",
+ "provider": "gcp",
+ "region": "us-central1",
+ "architecture": "amd64",
+ "size": "sky-2x8",
+ "storage": 100,
+ "nodes": 1,
+ "name": "skysql-quickstart",
+ "ssl_enabled": true,
+ "allow_list": [
+ {
+ "comment": "Describe the IP address",
+ "ip": "${SKYSQL_CLIENT_IP}/32"
+ }
+ ]
+}
+EOF
+
This configuration is suitable for a quick test, but a more customized configuration should be selected for performance testing or for alignment to the needs of production workloads:
+service_type
, choose aĀ Service Type Selectiontopology
, choose aĀ Topology Selectionprovider
, choose aĀ Cloud Provider SelectionĀ (aws
,gcp
or azure
)region
, choose aĀ Region Selectionarchitecture
, choose aĀ Hardware Architecture Selectionsize
, choose anĀ Instance Size Selectionstorage
, choose aĀ Transactional Storage Size Selectionnodes
, choose a node countversion
, choose theĀ Software Version Selectionname
, choose a name between 4-24 characters for the new serviceForĀ allow_list
, set the client IP address using CIDR notation, so that the client can connect through theĀ firewall
Provide the request to theĀ [/provisioning/v1/services
Ā API endpoint](https://mariadb.com/docs/skysql-dbaas/ref/skynr/api/slash_provisioning_slash_v1_slash_services,POST/)Ā to create (launch) a new database service and save the response to theĀ response-service.json
Ā file:
curl -sS --location --request POST \
+ --header "X-API-Key: ${API_KEY}" \
+ --header "Accept: application/json" \
+ --header "Content-type: application/json" \
+ --data '@request-service.json' \
+ https://api.skysql.com/provisioning/v1/services \
+ | tee response-service.json | jq .
+
Upon success, the command will return JSON with details about the new service.
+Read the service ID for the new service and save the value in theĀ SKYSQL_SERVICE
Ā environment variable:
$ export SKYSQL_SERVICE=`jq -r .id response-service.json`
+
Before advancing, check the service state using theĀ /provisioning/v1/services/${SKYSQL_SERVICE}
Ā API endpoint:
curl -sS --location --request GET \
+ --header "X-API-Key: ${API_KEY}" \
+ --header "Accept: application/json" \
+ https://api.skysql.com/provisioning/v1/services/${SKYSQL_SERVICE} \
+ | tee response-state.json | jq .status
+
When the service is still being launched, the JSON payload will containĀ "pending_create"
Ā orĀ "pending_modifying"
Ā as the service status.
When the service has been launched, the JSON payload containsĀ "ready"
, and you can continue with the next steps. Keep in mind that some of the following values will not be populated in the JSON data until this ready status has been achieved.
Obtain the connection credentials for the new SkySQL service by executing the following commands:
+Obtain the hostname and port of the service and save them to theĀ SKYSQL_FQDN
Ā andĀ SKYSQL_PORT
Ā environment variables:
The hostname is specified with theĀ "fqdn"
Ā key.
$ export SKYSQL_FQDN=`jq -r .fqdn response-state.json`
+
Available TCP ports are specified in theĀ "endpoints"
Ā array. For this test, connect to theĀ "port"
Ā whereĀ "name"
Ā isĀ "readwrite"
.
$ export SKYSQL_PORT=`jq '.endpoints[0].ports[] | select(.name=="readwrite") | .port' response-state.json`
+
Obtain the default username and password for the service using theĀ /provisioning/v1/services/${SKYSQL_SERVICE}/security/credentials
Ā API endpointĀ and save the response to theĀ response-credentials.json
Ā file:
curl -sS --location --request GET \
+ --header "X-API-Key: ${API_KEY}" \
+ --header "Accept: application/json" \
+ --header "Content-type: application/json" \
+ https://api.skysql.com/provisioning/v1/services/${SKYSQL_SERVICE}/security/credentials \
+ | tee response-credentials.json | jq .
+
The default username and password will not be available until the service state isĀ "ready"
.
Set the file's mode to only allow the current user to read its contents:
+$ chmod 600 response-credentials.json
+
Read the username and password fromĀ response-credentials.json
Ā and save them to theĀ SKYSQL_USERNAME
Ā andĀ SKYSQL_PASSWORD
Ā environment variables:
$ export SKYSQL_USERNAME=`jq -r .username response-credentials.json`
+$ export SKYSQL_PASSWORD=`jq -r .password response-credentials.json`
+
Connect to the database using the host, port, and default credentials using theĀ mariadbĀ client:
+mariadb --host ${SKYSQL_FQDN} --port ${SKYSQL_PORT} \
+ --user ${SKYSQL_USERNAME} --password="${SKYSQL_PASSWORD}" \
+ --ssl-verify-server-cert
+
If you don't want the password to appear on the command-line, specify theĀ --password
Ā command-line optionĀ without an argument to be prompted for a password.
To connect to your SkySQL service easily, it is possible to create aĀ .my.cnf
Ā file in your home directory that contains all the details of your connection.
.my.cnf
Ā file or overwrite an existing one and populates it with the connection information that was collected in the previous steps:cat > ~/.my.cnf <<EOF
+[client]
+host=${SKYSQL_FQDN}
+port=${SKYSQL_PORT}
+user=${SKYSQL_USERNAME}
+password="${SKYSQL_PASSWORD}"
+EOF
+
Set the file system permissions for theĀ .my.cnf
Ā file to ensure that other users can't read it:
$ chmod 600 ~/.my.cnf
+
When all the connection parameters are in yourĀ ~/.my.cnf
Ā file, theĀ mariadbĀ clientĀ can connect without specifying any command-line options:
$ mariadb
+
This walkthrough explains how to launch database services and manage the lifecycle of database services using the Terraform provider.
+For users who prefer other interfaces, SkySQL offers the following alternatives:
+ +This walkthrough demonstrates a service configuration that is suitable for a quick test. A more customized configuration should be selected for performance testing or for alignment to the needs of production workloads.
+Note
+This procedure uses Terraform. HashiCorp officially supports Terraform on several Linux distributions, but HashiCorp also provides binaries for Microsoft Windows, macOS, and other operating systems.
+For a list of operating systems that are officially supported for Terraform, see "HashiCorp Terraform Documentation: Supported Operating Systems".
+For a list of operating systems that have binaries available for Terraform, see "HashiCorp Terraform Documentation: Install Terraform".
+jq
, a JSON parsing utility.Ā jqĀ is available for Linux, macOS, and MS Windows. InstallĀ jq
Ā then proceed.curl
, a data transfer utility.Ā curlĀ is available for Linux, macOS, and MS Windows. InstallĀ curl
Ā then proceed.wget
, a file download utility.Ā GNU WgetĀ is available for Linux, macOS, and MS Windows. InstallĀ wget
Ā then proceed.sh
,Ā bash
, andĀ zsh
).Create a directory for your Terraform project and change to the directory:
+$ mkdir -p ~/skysql-nr-tf
+$ cd ~/skysql-nr-tf
main.tf
In the Terraform project directory, create aĀ main.tf
Ā file that contains the following:
# ---------------------
+# Provider Requirements
+# ---------------------
+# TF Documentation: https://developer.hashicorp.com/terraform/language/providers/requirements
+
+terraform {
+ required_providers {
+ skysql = {
+ source = "registry.terraform.io/skysqlinc/skysql"
+ }
+ }
+}
+
+# ----------------------
+# Provider Configuration
+# ----------------------
+# TF Documentation: https://developer.hashicorp.com/terraform/language/providers/configuration
+
+provider "skysql" {
+ access_token = var.api_key
+}
+
+# ---------
+# Resources
+# ---------
+# TF Documentation: https://developer.hashicorp.com/terraform/language/resources/syntax
+
+# Create a service
+resource "skysql_service" "default" {
+ service_type = var.service_type
+ topology = var.topology
+ cloud_provider = var.cloud_provider
+ region = var.region
+ availability_zone = coalesce(var.availability_zones, data.skysql_availability_zones.default.zones[0].name)
+ architecture = var.architecture
+ size = var.size
+ storage = var.storage
+ nodes = var.nodes
+ version = coalesce(var.sw_version, data.skysql_versions.default.versions[0].name)
+ name = var.name
+ ssl_enabled = var.ssl_enabled
+ deletion_protection = var.deletion_protection
+ wait_for_creation = true
+ wait_for_deletion = true
+ wait_for_update = true
+ is_active = true
+ allow_list = [
+ {
+ "ip" : var.ip_address,
+ "comment" : var.ip_address_comment
+ }
+ ]
+}
+
+# ------------
+# Data Sources
+# ------------
+# TF Documentation: https://developer.hashicorp.com/terraform/language/data-sources
+
+# Retrieve the list of projects. Projects are a way to group services.
+data "skysql_projects" "default" {}
+
+# Retrieve the list of available versions for a specific topology
+data "skysql_versions" "default" {
+ topology = var.topology
+}
+
+# Retrieve the service details
+data "skysql_service" "default" {
+ service_id = skysql_service.default.id
+}
+
+# Retrieve the service default credentials.
+# When the service is created please change the default credentials
+data "skysql_credentials" "default" {
+ service_id = skysql_service.default.id
+}
+
+data "skysql_availability_zones" "default" {
+ region = var.region
+ filter_by_provider = var.cloud_provider
+}
+
outputs.tf
In the Terraform project directory, create anĀ outputs.tf
Ā file that contains theĀ output valuesĀ used to display metadata about the SkySQL service:
# -------------
+# Output Values
+# -------------
+# TF Documentation: https://developer.hashicorp.com/terraform/language/values/outputs
+
+output "skysql_projects" {
+ value = data.skysql_projects.default
+}
+
+# Show the service details
+output "skysql_service" {
+ value = data.skysql_service.default
+}
+
+# Show the service credentials
+output "skysql_credentials" {
+ value = data.skysql_credentials.default
+ sensitive = true
+}
+
+# Example how you can generate a command line for the database connection
+output "skysql_cmd" {
+ value = "mariadb --host ${data.skysql_service.default.fqdn} --port 3306 --user ${data.skysql_service.default.service_id} -p --ssl-verify-server-cert"
+}
+
+output "availability_zones" {
+ value = data.skysql_availability_zones.default
+}
+
variables.tf
In the Terraform project directory, create aĀ variables.tf
Ā file that contains theĀ input variablesĀ used to configure the SkySQL service:
# ---------------
+# Input Variables
+# ---------------
+# TF Documentation: https://developer.hashicorp.com/terraform/language/values/variables
+
+variable "api_key" {
+ type = string
+ sensitive = true
+ description = "The SkySQL API Key generated at: https://app.skysql.com/user-profile/api-keys"
+}
+
+variable "service_type" {
+ type = string
+ default = "transactional"
+ description = "Specify \"transactional\" or \"analytical\". For additiona information, See https://apidocs.skysql.com/#/Offering/get_provisioning_v1_service_types"
+}
+
+variable "topology" {
+ type = string
+ default = "es-single"
+ description = "Specify a topology. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_topologies"
+}
+
+variable "cloud_provider" {
+ type = string
+ default = "gcp"
+ description = "Specify the cloud provider. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_providers"
+}
+
+variable "region" {
+ type = string
+ default = "us-central1"
+ description = "Specify the region. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_regions"
+}
+
+variable "availability_zone" {
+ type = string
+ default = null
+ description = "Specify the availability zone for the cloud provider and region. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_providers__provider_name__zones"
+}
+
+variable "architecture" {
+ type = string
+ default = "amd64"
+ description = "Specify a hardware architecture. For additional information, see: https://apidocs.skysql.com/#/CPU-Architectures/get_provisioning_v1_cpu_architectures"
+}
+
+variable "size" {
+ type = string
+ default = "sky-2x8"
+ description = "Specify the database node instance size. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_sizes"
+}
+
+variable "storage" {
+ type = number
+ default = 100
+ description = "Specify a transactional storage size. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_topologies__topology_name__storage_sizes"
+}
+
+variable "nodes" {
+ type = number
+ default = 1
+ description = "Specify a node count. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_topologies__topology_name__nodes"
+}
+
+variable "sw_version" {
+ type = string
+ default = null
+ description = "Specify a software version. For additional information, see: https://apidocs.skysql.com/#/Offering/get_provisioning_v1_versions"
+}
+
+variable "name" {
+ type = string
+ default = "skysql-quickstart"
+ description = "Specify a name for the service 4-24 characters in length."
+}
+
+variable "ssl_enabled" {
+ type = bool
+ default = true
+ description = "Specify whether TLS should be enabled for the service."
+}
+
+variable "deletion_protection" {
+ type = bool
+ default = true
+ description = "Specify whether the service can be deleted via Terraform (false) or whether trying to do so raises an error (true)"
+}
+
+variable "ip_address" {
+ type = string
+ description = "Specify an IP address in CIDR format to add to the service's IP allowlist."
+}
+
+variable "ip_address_comment" {
+ type = string
+ description = "Specify a comment describing the IP address."
+}
+
The variables are configured in the next step.
+.tfvars
Ā FileAĀ [.tfvars
Ā file](https://developer.hashicorp.com/terraform/tutorials/configuration-language/variables#assign-values-with-a-file)Ā can be used to configure the service using the input variables.
For example:
+api_key = "... key data ..."
+service_type = "transactional"
+topology = "es-single"
+cloud_provider = "gcp"
+region = "us-central1"
+availability_zone = null
+architecture = "amd64"
+size = "sky-2x8"
+storage = 100
+nodes = 1
+sw_version = null
+name = "skysql-nr-quickstart"
+ssl_enabled = true
+deletion_protection = true
+ip_address = "192.0.2.10/32"
+ip_address_comment = "Describe the IP address"
+
The input variables should be customized for your own needs:
+api_key
, set it to the API key previously created in "Step 1: Generate API Key"service_type
, choose aĀ Service Type Selectiontopology
, choose aĀ Topology Selectioncloud_provider
, choose aĀ Cloud Provider Selectionregion
, choose aĀ Region Selectionavailability_zone
, choose aĀ Availability Zone SelectionĀ or leave itĀ null
Ā to use the default availability zone for the cloud provider and regionarchitecture
, choose aĀ Hardware Architecture Selectionsize
, choose anĀ Instance Size Selectionstorage
, choose aĀ Transactional Storage Size Selectionnodes
, choose a node countsw_version
, choose theĀ Software Version SelectionĀ or leave itĀ null
Ā to use the default version for the topologyname
, choose aĀ name between 4-24 charactersĀ for the new servicedeletion_protection
, choose whether the service can be deleted via Terraform (false
) or whether trying to do so raises an error (true
)ip_address
, choose an IP address to allow through theĀ firewallip_address_comment
, provide a description for the IP addressThe following steps assume that the file is calledĀ skysql-nr-quickstart.tfvars
.
terraformĀ init
Initialize the Terraform project directory and download the Terraform provider from theĀ Terraform RegistryĀ by executing theĀ [terraformĀ init
Ā command](https://developer.hashicorp.com/terraform/cli/commands/init):
$ terraform init
If you need to download the provider manually, see "Manually Install Provider from Binary Distribution".
+terraformĀ plan
Create a Terraform execution plan by executing theĀ [terraformĀ plan
Ā command](https://developer.hashicorp.com/terraform/cli/commands/plan)Ā and specifying the path to theĀ .tfvars
Ā file:
$ terraform plan -var-file="skysql-nr-quickstart.tfvars"
terraformĀ apply
Execute the Terraform execution plan and create the SkySQL service by executing theĀ [terraformĀ apply
Ā command](https://developer.hashicorp.com/terraform/cli/commands/apply)Ā and specifying the path to theĀ .tfvars
Ā file:
$ terraform apply -var-file="skysql-nr-quickstart.tfvars"
Terraform prints the plan from the previous step again and prompts the user to confirm that the plan should be applied:
+Do you want to perform these actions?
+ Terraform will perform the actions described above.
+ Only 'yes' will be accepted to approve.
+
+ Enter a value: yes
+
Then Terraform creates the objects and prints status messages:
+skysql_service.default: Creating...
+skysql_service.default: Still creating... [10s elapsed]
+skysql_service.default: Still creating... [20s elapsed]
+skysql_service.default: Still creating... [30s elapsed]
+skysql_service.default: Still creating... [40s elapsed]
+skysql_service.default: Still creating... [50s elapsed]
+skysql_service.default: Still creating... [1m0s elapsed]
+skysql_service.default: Still creating... [1m10s elapsed]
+skysql_service.default: Still creating... [1m20s elapsed]
+skysql_service.default: Still creating... [1m30s elapsed]
+skysql_service.default: Still creating... [1m40s elapsed]
+skysql_service.default: Still creating... [1m50s elapsed]
+skysql_service.default: Still creating... [2m0s elapsed]
+skysql_service.default: Still creating... [2m10s elapsed]
+skysql_service.default: Still creating... [2m20s elapsed]
+skysql_service.default: Still creating... [2m30s elapsed]
+skysql_service.default: Still creating... [2m40s elapsed]
+skysql_service.default: Still creating... [2m50s elapsed]
+skysql_service.default: Still creating... [3m0s elapsed]
+skysql_service.default: Still creating... [3m10s elapsed]
+skysql_service.default: Still creating... [3m20s elapsed]
+skysql_service.default: Still creating... [3m30s elapsed]
+skysql_service.default: Creation complete after 3m40s [id=dbpgf00000001]
+data.skysql_credentials.default: Reading...
+data.skysql_service.default: Reading...
+data.skysql_service.default: Read complete after 0s [name=skysql-nr-quickstart]
+data.skysql_credentials.default: Read complete after 0s
+
+Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
+
Then Terraform prints the outputs.
+Obtain the connection credentials for the new SkySQL service by executing the following commands:
+Obtain the connection command from theĀ terraform.tfstate
Ā file:
$ jq ".outputs.skysql_cmd" terraform.tfstate
"mariadb --host dbpgf00000001.sysp0000.db.skysql.net --port 3306 --user dbpgf00000001 -p --ssl-verify-server-cert"
Obtain the user password from theĀ terraform.tfstate
Ā file:
$ jq ".outputs.skysql_credentials.value.password" terraform.tfstate
"..password string.."
Connect to the SkySQL service by executing the connection command from the previous step:
+$ mariadb --host dbpgf00000001.sysp0000.db.skysql.net --port 3306 --user dbpgf00000001 -p --ssl-verify-server-cert
When prompted, type the password and press enter to connect:
+Enter password:
+Welcome to the MariaDB monitor. Commands end with ; or \g.
+Your MariaDB connection id is 11691
+Server version: 10.11.6-MariaDB-log MariaDB Server
+
+Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
+
+Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+
+MariaDB [(none)]>
+
terraformĀ destroy
Delete the service by executing theĀ [terraformĀ destroy
Ā command](https://developer.hashicorp.com/terraform/cli/commands/destroy)Ā and specifying the path to theĀ .tfvars
Ā file:
$ terraform destroy -var-file="skysql-nr-quickstart.tfvars"
Terraform prints the plan to delete the service and prompts the user to confirm that the plan should be applied:
+`Do you really want to destroy all resources? + Terraform will destroy all your managed infrastructure, as shown above. + There is no undo. Only 'yes' will be accepted to confirm.
+Enter a value: yes`
+If deletion protection is enabled for the resources, the operation raises an error:
+ā·
+ā Error: Can not delete service
+ā
+ā Deletion protection is enabled
+āµ
If deletion protection is not enabled for the resources, Terraform deletes the resources and prints status messages:
+skysql_service.default: Destroying... [id=dbpgf00000001]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 10s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 20s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 30s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 40s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 50s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 1m0s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 1m10s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 1m20s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 1m30s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 1m40s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 1m50s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 2m0s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 2m10s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 2m20s elapsed]
+skysql_service.default: Still destroying... [id=dbpgf00000001, 2m30s elapsed]
+skysql_service.default: Destruction complete after 2m38s
+
+Destroy complete! Resources: 1 destroyed.
+
The SkySQL New Release Terraform provider can be downloaded from theĀ GitHub releases pageĀ as a binary distribution and manually installed.
+WithĀ Linux, manually install the provider on the target system by performing the following steps in the same Bash terminal:
+Set some environment variables to configure your provider version, OS, and architecture:
+$ export TF_PROVIDER_RELEASE=3.0.0
+$ export TF_PROVIDER_OS=linux
+$ export TF_PROVIDER_ARCH=amd64
+
ForĀ TF_PROVIDER_ARCH
, the following architectures are supported on Linux:
386
amd64
arm
arm64
wget
:$ wget -q https://github.com/skysqlinc/terraform-provider-skysql/releases/download/v3.0.0/terraform-provider-skysql_3.0.0_linux_amd64.zip
Create a Terraform plugin directory:
+$ mkdir -p ~/.terraform.d/plugins/registry.terraform.io/skysqlinc/skysql
Move the provider's binary distribution to the Terraform plugin directory:
+$ mv terraform-provider-skysql_${TF_PROVIDER_RELEASE}_${TF_PROVIDER_OS}_${TF_PROVIDER_ARCH}.zip ~/.terraform.d/plugins/registry.terraform.io/skysqlinc/skysql/
Verify that the provider's binary distribution is present in the Terraform plugin directory:
+$ ls -l ~/.terraform.d/plugins/registry.terraform.io/skysqlinc/skysql/
WithĀ macOS, manually install the provider on the target system by performing the following steps in the same macOS Terminal:
+IfĀ HomebrewĀ is not installed, install it:
+$ /bin/bash -c "**$(**curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh**)**"
InstallĀ wget
Ā using Homebrew:
$ brew install wget
Set some environment variables to configure your provider version, OS, and architecture:
+$ export TF_PROVIDER_RELEASE=1.1.0
+$ export TF_PROVIDER_OS=darwin
+$ export TF_PROVIDER_ARCH=arm64
+
ForĀ TF_PROVIDER_ARCH
, the following architectures are supported on macOS:
amd64
arm64
wget
:$ wget -q https://github.com/skysqlinc/terraform-provider-skysql/releases/download/v3.0.0/terraform-provider-skysql_3.0.0_darwin_arm64.zip
Create a Terraform plugin directory:
+$ mkdir -p ~/.terraform.d/plugins/registry.terraform.io/skysqlinc/skysql
Move the provider's binary distribution to the Terraform plugin directory:
+$ mv terraform-provider-skysql_${TF_PROVIDER_RELEASE}_${TF_PROVIDER_OS}_${TF_PROVIDER_ARCH}.zip ~/.terraform.d/plugins/registry.terraform.io/skysqlinc/skysql/
Verify that the provider's binary distribution is present in the Terraform plugin directory:
+$ ls -l ~/.terraform.d/plugins/registry.terraform.io/skysqlinc/skysql/
It only takes a few minutes to launch a standalone or clustered database on SkySQL. You can pick from about 30 global regions and launch on AWS or GCP.
+You have three choices to provision a DB on SkySQL :
+This Quickstart explains how to launch database services and manage the lifecycle of database services using theĀ PortalĀ in a web browser.
+For users who prefer other interfaces, SkySQL offers the following alternatives:
+Goto app.skysql.com to sign up. You can sign up using your Google, Github or LinkedIn credentials. Or, just use your Email address to sign up.
+ +Log in to the SkySQL PortalĀ and from the Dashboard, click the + Launch New Service button.
+From the launch interface, select the choices detailed below.
+Select:
+Enterprise Server with Replicas
AWS
andĀ Ohio, USA (us-east-2)
, or Google Cloud
andĀ Iowa, USA (us-central1)
, or a region of your choiceARM64
, Sky-2x8
for AWS 100GB
of gp3
storage with default 3000 IOPS
and 125 MB/s
throughputquickstart-1
Add my current IP: 99.43.xxx.xxx
in the Security
sectionLaunch Service
button.For additional information on available selections, see "Service Launch".
+You will be returned to the Dashboard where your service will be in a Creating
state.
When the service reaches "Healthy" state, go to the next step. It typically takes about 5 mins or less to launch a new DB.
+You can monitor all the important database and OS metrics from the dashboard. The monitoring UI also allows you to view,download any/all logs - error, info or Audit logs.
+Basic status is shown on the Dashboard.
+To see expanded status and metrics information:
+Service Overview
) or server details from the navigation tabs.Specific views are provided for different sets of metrics. These views can be accessed using the buttons in the upper-right corner. From the service overview, views include Status
, Lags
, Queries
, Database
and System
.
Monitoring Dashboard
+SkySQL features automatic rule-based scaling (Autonomous) and manual on-demand scaling.
+With automatic scaling, node count (horizontal) and node size (vertical) changes can be triggered based on load. Additionally, storage capacity expansion can be triggered based on usage. These Autonomous features are opt-in. For additional information, see "Autonomous".
+ +Autonomous
+With manual scaling, you can perform horizontal scaling (In/Out), vertical scaling (Up/Down), and storage expansion on-demand using Self-Service Operations. For additional information, see "Self-Service Operations".
+ +Self-Service Scaling of Nodes
+When you are done with your testing session, you can stop the service. When a service is stopped, storage charges continue to accrue, but compute charges pause until the service is started again.
+When you are done with testing, you can delete the service.
+Stopping, starting, and deleting a service are examples of Self-Service Operations that you can perform through the Portal.
+For additional information, see "Self-Service Operations".
+ + + + + + + + + + + + + + + +Instance size choices are specific to theĀ cloud provider,Ā topology,Ā region, andĀ hardware architecture.
+ + +For Foundation tier:
+Instance Size | +Cloud Provider | +CPU | +Memory | +
---|---|---|---|
sky-2x4 | +aws | +2 vCPU | +4 GB | +
sky-2x8 | +aws | +2 vCPU | +8 GB | +
sky-2x8 | +gcp | +2 vCPU | +8 GB | +
sky-4x16 | +aws | +4 vCPU | +16 GB | +
sky-4x16 | +gcp | +4 vCPU | +16 GB | +
sky-4x32 | +aws | +4 vCPU | +32 GB | +
sky-4x32 | +gcp | +4 vCPU | +32 GB | +
sky-8x32 | +aws | +8 vCPU | +32 GB | +
sky-8x32 | +gcp | +8 vCPU | +32 GB | +
sky-8x64 | +aws | +8 vCPU | +64 GB | +
sky-8x64 | +gcp | +8 vCPU | +64 GB | +
For Power tier:
+Instance Size | +Cloud Provider | +CPU | +Memory | +
---|---|---|---|
sky-2x4 | +aws | +2 vCPU | +4 GB | +
sky-2x8 | +aws | +2 vCPU | +8 GB | +
sky-2x8 | +gcp | +2 vCPU | +8 GB | +
sky-4x16 | +aws | +4 vCPU | +16 GB | +
sky-4x16 | +gcp | +4 vCPU | +16 GB | +
sky-4x32 | +aws | +4 vCPU | +32 GB | +
sky-4x32 | +gcp | +4 vCPU | +32 GB | +
sky-8x32 | +aws | +8 vCPU | +32 GB | +
sky-8x32 | +gcp | +8 vCPU | +32 GB | +
sky-8x64 | +aws | +8 vCPU | +64 GB | +
sky-16x64 | +aws | +16 vCPU | +64 GB | +
sky-16x64 | +gcp | +16 vCPU | +64 GB | +
sky-16x128 | +aws | +16 vCPU | +128 GB | +
sky-16x128 | +gcp | +16 vCPU | +128 GB | +
sky-32x128 | +aws | +32 vCPU | +128 GB | +
sky-32x128 | +gcp | +32 vCPU | +128 GB | +
sky-32x256 | +aws | +32 vCPU | +256 GB | +
sky-32x256 | +gcp | +32 vCPU | +256 GB | +
sky-64x256 | +aws | +64 vCPU | +256 GB | +
sky-64x256 | +gcp | +64 vCPU | +256 GB | +
sky-64x512 | +aws | +64 vCPU | +512 GB | +
sky-64x512 | +gcp | +64 vCPU | +512 GB | +
With Power tier, the following instance sizes can be selected for MaxScale nodes:
+Instance Size | +Cloud Provider | +CPU | +Memory | +
---|---|---|---|
sky-2x4 | +aws | +2 vCPU | +4 GB | +
sky-2x8 | +gcp | +2 vCPU | +8 GB | +
sky-4x16 | +aws | +4 vCPU | +16 GB | +
sky-4x16 | +gcp | +4 vCPU | +16 GB | +
sky-8x32 | +aws | +8 vCPU | +32 GB | +
sky-8x32 | +gcp | +8 vCPU | +32 GB | +
sky-16x64 | +aws | +16 vCPU | +64 GB | +
sky-16x64 | +gcp | +16 vCPU | +64 GB | +
sky-32x128 | +aws | +32 vCPU | +128 GB | +
sky-32x128 | +gcp | +32 vCPU | +128 GB | +
sky-64x256 | +aws | +64 vCPU | +256 GB | +
sky-64x256 | +gcp | +64 vCPU | +256 GB | +
A REST client can use the SkySQL DBaaS API to query instance size selections and choose an instance size for a new service.
+A REST client can query the SkySQL DBaaS API for the database node instance size selections for a specific cloud provider, architecture, and topology.
+To see the available database node instance sizes for a topology, useĀ curl
Ā to call theĀ [/provisioning/v1/sizes
Ā API endpoint](https://mariadb.com/docs/skysql-dbaas/ref/skynr/api/slash_provisioning_slash_v1_slash_sizes/)Ā withĀ type=server
Ā set:
curl -sS --location \
+ --header "X-API-Key: ${API_KEY}" \
+ 'https://api.skysql.com/provisioning/v1/sizes?architecture=amd64&service_type=transactional&provider=gcp&topology=es-replica&type=server' \
+ | jq .
+
[
+ {
+ "id": "37629543-65d2-11ed-8da6-2228d0ae81af",
+ "name": "sky-2x8",
+ "display_name": "Sky-2x8",
+ "service_type": "transactional",
+ "provider": "gcp",
+ "tier": "foundation",
+ "architecture": "amd64",
+ "cpu": "2 vCPU",
+ "ram": "8 GB",
+ "type": "server",
+ "default_maxscale_size_name": "sky-2x8",
+ "updated_on": "2022-11-16T17:15:06Z",
+ "created_on": "2022-11-16T17:15:06Z",
+ "is_active": true,
+ "topology": "es-replica"
+ },
+ {
+ "id": "37629489-65d2-11ed-8da6-2228d0ae81af",
+ "name": "sky-4x16",
+ "display_name": "Sky-4x16",
+ "service_type": "transactional",
+ "provider": "gcp",
+ "tier": "foundation",
+ "architecture": "amd64",
+ "cpu": "4 vCPU",
+ "ram": "16 GB",
+ "type": "server",
+ "default_maxscale_size_name": "sky-2x8",
+ "updated_on": "2022-11-16T17:15:06Z",
+ "created_on": "2022-11-16T17:15:06Z",
+ "is_active": true,
+ "topology": "es-replica"
+ },
+....
+
+]
+
A REST client can query the SkySQL DBaaS API for the MaxScale node instance size selections for a specific cloud provider, architecture, and topology.
+To see the default MaxScale instance size for a topology, cloud, and architecture, useĀ curl
Ā to call theĀ [/provisioning/v1/sizes
Ā API endpoint](https://mariadb.com/docs/skysql-dbaas/ref/skynr/api/slash_provisioning_slash_v1_slash_sizes/):
curl -sS --location \
+ --header "X-API-Key: ${API_KEY}" \
+ 'https://api.skysql.com/provisioning/v1/sizes?provider=gcp&architecture=amd64&topology=es-replica' \
+ | jq .
+
[
+ {
+ "id": "c0666ab8-4a3b-11ed-8853-b278760e6ab5",
+ "name": "sky-2x8",
+ "display_name": "Sky-2x8",
+ "service_type": "transactional",
+ "provider": "gcp",
+ "tier": "foundation",
+ "architecture": "amd64",
+ "cpu": "2 vCPU",
+ "ram": "8 GB",
+ "type": "server",
+ "default_maxscale_size_name": "sky-2x8",
+ "updated_on": "2022-10-12T14:40:00Z",
+ "created_on": "2022-10-12T14:40:00Z",
+ "is_active": true,
+ "topology": "es-replica"
+ }
+]
+
TheĀ default_maxscale_size_name
Ā attribute shows the default MaxScale instance size.
To see the available MaxScale node instance sizes for a topology, useĀ curl
Ā to call theĀ [/provisioning/v1/sizes
Ā API endpoint](https://mariadb.com/docs/skysql-dbaas/ref/skynr/api/slash_provisioning_slash_v1_slash_sizes/)Ā withĀ type=proxy
Ā set:
curl -sS --location \
+ --header "X-API-Key: ${API_KEY}" \
+ 'https://api.skysql.com/provisioning/v1/sizes?architecture=amd64&service_type=transactional&provider=gcp&topology=es-replica&type=proxy' \
+ | jq .
+
The output can show different instance sizes, depending on whether your SkySQL account is Foundation tier or Power tier.
+ + + + + + + + + + + + + +The following Authenticators are supported by MariaDB MaxScale 22.08:
+Method | +Authenticator | +Enterprise Server Plugin | +Xpand Plugin | +Description | +
---|---|---|---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/authenticator/GSSAPI/ | +GSSAPIAuth | +https://mariadb.com/docs/server/ref/mdb/plugins/gssapi/ | ++ | Authenticates client connections using a GSSAPI authentication service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/authenticator/Native/ | +MariaDBAuth | +https://mariadb.com/docs/skysql-dbaas/ref/mdb/plugins/mysql_native_password/ | +https://mariadb.com/docs/xpand/security/authentication/xpand/mysql_native_password/ | +Authenticates client connections using the native password authentication method | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/authenticator/PAM/ | +PAMAuth | +https://mariadb.com/docs/server/ref/mdb/plugins/pam,auth_pam.so/ | ++ | Authenticates client connections using a Pluggable Authentication Modules (PAM) service | +
To see Authenticators supported in other versions, seeĀ "Authenticators by MariaDB MaxScale Version".
+The following Filters are supported by MariaDB MaxScale 22.08:
+Filter | +Type | +Description | +
---|---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/binlogfilter/ | +Special Routing | +Binary Log Filter can be used with theĀ binlogrouterĀ to selectively replicate Binary Log events to Replica Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/cache/ | +Performance | +Caches the result-sets ofĀ https://mariadb.com/docs/skysql-dbaas/ref/mdb/sql-statements/SELECT/Ā statements to improve query performance | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/ccrfilter/ | +Server Selection | +Consistent Critical Read (CCR) Filter detects when a statement modifies the database, and it attaches routing hints to any subsequent statements, so they get routed to the master | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/hintfilter/ | +Server Selection | +Hint Filter allows services to interpret routing hints, which can be specified in a comment when a query is executed. Note that if master_accept_reads is enabled, MaxScale will still route to both master and slave | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/insertstream/ | +Performance | +Insert Stream Filter translates bulkĀ https://mariadb.com/docs/skysql-dbaas/ref/mdb/sql-statements/INSERT/Ā statements into CSV data that is streamed to the backend server and loaded using theĀ https://mariadb.com/docs/skysql-dbaas/ref/mdb/sql-statements/LOAD_DATA_INFILE/Ā statement | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/luafilter/ | +Programmatic | +Lua Filter processes queries with the specified Lua scripts (experimental) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/masking/ | +Security | +Masking Filter obfuscates the return values of specified columns | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/maxrows/ | +Performance | +Max Rows Filter limits the number of rows thatĀ https://mariadb.com/docs/skysql-dbaas/ref/mdb/sql-statements/SELECT/Ā statements, prepared statements, and stored procedures can return | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/namedserverfilter/ | +Server Selection | +Named Server Filter compares queries to specified Regular Expressions, and when the query matches, the filter applies the specified routing hint to the query | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/qlafilter/ | +Security | +Query Log All (QLA) Filter logs matching queries to a CSV file | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/regexfilter/ | +Programmatic | +Regex Filter rewrites matching queries using Regular Expressions | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/rewritefilter/ | ++ | Rewrites queries based on a query template | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/tee/ | +Special Routing | +Tee Filter copies client requests to other services | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/throttlefilter/ | +Performance | +Throttle Filter limits the maximum frequency of queries per second allowed for a database session | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/topfilter/ | +Performance | +Top Filter logs the top queries by execution time | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/filter/tpmfilter/ | +Performance | +Transaction Performance Monitoring (TPM) Filter logs information on committed transactions for performance analysis (experimental) | +
To see Filters supported in other versions, seeĀ "Filters by MariaDB MaxScale Version".
+The following Global Parameters are supported by MariaDB MaxScale 22.08:
+Global Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_auth/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_auth/ | +Enables HTTP Basic Access authentication for REST API | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_enabled/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_enabled/ | +Enables the administrative interface for REST API | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_gui/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_gui/ | +Enable admin GUI | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_host/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_host/ | +Network interface the REST API listens on | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_jwt_algorithm/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_jwt_algorithm/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_jwt_algorithm/ | +JWT signature algorithm | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_jwt_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_jwt_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_jwt_key/ | +Encryption key ID for symmetric signature algorithms. If left empty, MaxScale will generate a random key that is used to sign the JWT. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_log_auth_failures/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_log_auth_failures/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_log_auth_failures/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_log_auth_failures/ | +Enables logging authentication failures to the administrative interface | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_oidc_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_oidc_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_oidc_url/ | +Extra public certificates used to validate externally signed JWTs | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readonly_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readonly_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readonly_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readonly_service/ | +Enables PAM-based authentication served for REST API for read-only users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readwrite_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readwrite_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readwrite_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_pam_readwrite_service/ | +Enables PAM-based authentication service for REST API for users who can perform any REST API operation | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_port/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_port/ | +Port on network interface the REST API listenes on | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_secure_gui/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_secure_gui/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_secure_gui/ | +Only serve GUI over HTTPS | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca/ | +Path to PEM file containing TLS Certificate Authority (CA) to use in HTTPS for REST API. Formerly admin_ssl_ca_cert. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_ca_cert/ | +Alias for 'admin_ssl_ca' | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_cert/ | +Path to PEM file containing TLS certificate to use in HTTPS for REST API | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_key/ | +Path to PEM file containing TLS key to use in HTTPS for REST API | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_version/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_version/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_ssl_version/ | +Minimum required TLS protocol version for the REST API | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_verify_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_verify_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/admin_verify_url/ | +URL for third-party verification of client tokens | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_connect_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_connect_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_connect_timeout/ | +Amount of time to wait in seconds for authentication to the Server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_read_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_read_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_read_timeout/ | +Amount of time to wait in seconds when retrieving user authentication data from the Server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_write_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_write_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auth_write_timeout/ | +Amount of time to wait in seconds when retrieving user authentication data from the Server. MaxScale does not write authentication data to the Server. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auto_tune/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/auto_tune/ | +Specifies whether a MaxScale parameter whose value depends on a specific global server variable, should automatically be updated to match the variable's current value | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/cachedir/ | +Path to the directory containing cached data | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_cluster/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_cluster/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_cluster/ | +Cluster used for configuration synchronization. If left empty (i.e., value is ""), synchronization is not done. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_db/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_db/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_db/ | +Database where the 'maxscale_config' table is created | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_interval/ | +How often to synchronize the configuration | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_password/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_password/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_password/ | +Password for the user used for configuration synchronization | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_timeout/ | +Timeout for the configuration synchronization operations | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/config_sync_user/ | +User account used for configuration synchronization | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/connector_plugindir/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/connector_plugindir/ | +Path to MariaDB Connector C plugin directory | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/datadir/ | +Path to the data directory | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/debug/ | +Debug options | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/dump_last_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/dump_last_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/dump_last_statements/ | +Sets condition on which MariaDB MaxScale dumps the last statement sent by the client | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/execdir/ | +Path to directory containing executable files | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/key_manager/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/key_manager/ | +Key manager type | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/language/ | +Path to directory containing theĀ errmsg.sysĀ file | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/libdir/ | +Path to the directory searched for modules | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/load_persisted_configs/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/load_persisted_configs/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/load_persisted_configs/ | +Enables loading persistent runtime configuration changes on startup. Persistent runtime changes are saved to theĀ /var/lib/maxscale/maxscale.cnf.d/Ā directory. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/local_address/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/local_address/ | +Sets local address or network interface to use when connecting to Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_augmentation/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_augmentation/ | +Appends logging messages with the name of the function where the message was logged (used primarily for development purposes) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_debug/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_debug/ | +Enables logging messages at theĀ debugĀ syslog priority | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_info/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_info/ | +Enables logging messages at theĀ infoĀ syslog priority | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_notice/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_notice/ | +Enables logging messages at theĀ noticeĀ syslog priority | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_throttling/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_throttling/ | +Limit the amount of identical log messages than can be logged during a certain time period | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_warn_super_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_warn_super_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_warn_super_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_warn_super_user/ | +Log a warning when a user with super privilege logs in | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_warning/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/log_warning/ | +Enables logging messages at theĀ warningĀ syslog priority | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/logdir/ | +Path to directory used to store log files | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_auth_errors_until_block/ | +Maximum number of authentication failures allowed before temporarily blocking a host | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_read_amount/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_read_amount/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/max_read_amount/ | +Maximum amount of data read before return to epoll_wait | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/maxlog/ | +Logs messages to the log file | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/module_configdir/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/module_configdir/ | +Path to directory containing module configurations | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/ms_timestamp/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/ms_timestamp/ | +Enables millisecond precision in log timestamps | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/passive/ | +Puts the MaxScale Instance on stand-by, Passive Instances monitor Servers and accept client connections, but take no action | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/persist_runtime_changes/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/persist_runtime_changes/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/persist_runtime_changes/ | +Persist configurations changes done at runtime | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/persistdir/ | +Path to directory containing persistent configurations | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/piddir/ | +Path to the directory containing the PID file | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier/ | +Sets the Query Classifier module | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_args/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_args/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_args/ | +Specifies arguments passed to the Query Classifier | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_cache_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_cache_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_cache_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_classifier_cache_size/ | +Maximum size for Query Classifier Cache | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_retries/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_retries/ | +Number of times to retry an internal query interruped by network errors | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_retry_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_retry_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/query_retry_timeout/ | +Amount of time in seconds to wait on retried queries | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/rebalance_period/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/rebalance_period/ | +How often should the load of the worker threads be checked and rebalancing be made | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/rebalance_threshold/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/rebalance_threshold/ | +If the difference in load between the thread with the maximum load and the thread with the minimum load is larger than the value of this parameter, then work will be moved from the former to the latter | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/rebalance_window/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/rebalance_window/ | +The load of how many seconds should be taken into account when rebalancing | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/retain_last_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/retain_last_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/retain_last_statements/ | +Number of statements stored for each session. Used in debugging. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/session_trace/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/session_trace/ | +Number of log entries stored in the session trace log. Used in debugging. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/session_trace_match/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/session_trace_match/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/session_trace_match/ | +Regular expression that is matched against the contents of the session trace log and if it matches the contents are logged when the session stops | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/sharedir/ | ++ |
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/skip_name_resolve/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/skip_name_resolve/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/skip_name_resolve/ | +Do not resolve client IP addresses to hostnames during authentication | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/skip_permission_checks/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/skip_permission_checks/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/skip_permission_checks/ | +Disables user permission checks for services and monitors during startup | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/sql_mode/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/sql_mode/ | +Specifies SQL Mode for Query Classifier | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/substitute_variables/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/substitute_variables/ | +Sets environmental variables for cofniguration files | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/syslog/ | +Logs messages to the syslog | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/threads/ | +This parameter specifies how many threads will be used for handling the routing | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/users_refresh_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/users_refresh_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/users_refresh_interval/ | +How often the users will be refreshed | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/users_refresh_time/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/users_refresh_time/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/users_refresh_time/ | +How often the users can be refreshed | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/writeq_high_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/writeq_high_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/writeq_high_water/ | +Maximum size of client-side write queue to a given Server before MaxScale blocks traffic going to the Server to allow it to catch up | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/writeq_low_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/writeq_low_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/global-parameters/writeq_low_water/ | +Size the client-side write queue must drop to before MaxScale unblocks a throttled Server | +
To see Global Parameters supported in other versions, seeĀ "Global Parameters by MariaDB MaxScale Version".
+The Module Parameters supported by MariaDB MaxScale 22.08 are listed below.
+To see Module Parameters supported in other versions, seeĀ "Module Parameters by MariaDB MaxScale Version".
+The parameters for mariadbmon:
+Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/assume_unique_hostnames/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/assume_unique_hostnames/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/assume_unique_hostnames/ | +Assume that hostnames are unique | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auto_failover/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auto_failover/ | +Enable automatic server failover | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auto_rejoin/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auto_rejoin/ | +Enable automatic server rejoin | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_connect_attempts,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_connect_attempts,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_connect_attempts,Monitor.mariadbmon/ | +Number of connection attempts to make to a server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_connect_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_connect_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_connect_timeout,Monitor.mariadbmon/ | +Connection timeout for monitor connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_read_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_read_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_read_timeout,Monitor.mariadbmon/ | +Read timeout for monitor connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_write_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_write_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/backend_write_timeout,Monitor.mariadbmon/ | +Write timeout for monitor connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cooperative_monitoring_locks/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cooperative_monitoring_locks/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cooperative_monitoring_locks/ | +Cooperative monitoring type | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_api_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_api_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_api_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_api_key/ | +The API key used in communication with the ColumnStore admin daemon | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_base_path/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_base_path/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_base_path/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_base_path/ | +The base path to be used when accessing the ColumnStore administrative daemon. If, for instance, a daemon URL is https://localhost:8640/cmapi/0.4.0/node/start then the admin_base_path is "/cmapi/0.4.0". | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_port/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_port/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/cs_admin_port/ | +Port of the ColumnStore administrative daemon | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/demotion_sql_file/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/demotion_sql_file/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/demotion_sql_file/ | +Path to SQL file that is executed during node demotion | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_check_interval,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_check_interval,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_check_interval,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_check_interval,Monitor.mariadbmon/ | +How often the disk space is checked | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_threshold,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_threshold,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_threshold,Monitor.mariadbmon/ | +Disk space threshold | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_read_only_slaves/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_read_only_slaves/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_read_only_slaves/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_read_only_slaves/ | +Enable read_only on all slave servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_simple_topology/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_simple_topology/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_simple_topology/ | +Enforce a simple topology | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_writable_master/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_writable_master/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enforce_writable_master/ | +Disable read_only on the current master server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/events,Monitor.mariadbmon/ | +Events that cause the script to be called | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/failcount/ | +Number of consecutive times MaxScale can fail to reach the Primary Server before it considers it down | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/failover_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/failover_timeout/ | +Timeout for failover | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/handle_events/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/handle_events/ | +Manage server-side events | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/journal_max_age,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/journal_max_age,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/journal_max_age,Monitor.mariadbmon/ | +The time the on-disk cached server states are valid for | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/maintenance_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/maintenance_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/maintenance_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/maintenance_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/maintenance_on_low_disk_space/ | +Put the server into maintenance mode when it runs out of disk space | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_conditions/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_conditions/ | +Conditions that the master servers must meet | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_failure_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_failure_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_failure_timeout/ | +Master failure timeout | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/monitor_interval,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/monitor_interval,Monitor.mariadbmon/ | +How often the servers are monitored | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/password,Monitor.mariadbmon/ | +Password for the user used to monitor the servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/promotion_sql_file/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/promotion_sql_file/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/promotion_sql_file/ | +Path to SQL file that is executed during node promotion | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebuild_port/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebuild_port/ | +Listen port used for transferring server backup | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_master_ssl/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_master_ssl/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_master_ssl/ | +Enable SSL when configuring replication | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_password/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_password/ | +Password for the user that is used for replication | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/replication_user/ | +User used for replication | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script,Monitor.mariadbmon/ | +Script to run whenever an event occurs | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script_max_replication_lag/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script_max_replication_lag/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script_max_replication_lag/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script_max_replication_lag/ | +Replication lag limit at which the script is run | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script_timeout,Monitor.mariadbmon/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/script_timeout,Monitor.mariadbmon/ | +Timeout for the script | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/servers,Monitor.mariadbmon/ | +List of servers to use | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/servers_no_promotion/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/servers_no_promotion/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/servers_no_promotion/ | +List of servers that are never promoted | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_conditions/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_conditions/ | +Conditions that the slave servers must meet | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_check_host_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_check_host_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_check_host_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_check_host_key/ | +Is SSH host key check enabled | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_keyfile/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_keyfile/ | +SSH keyfile. Used for running remote commands on servers. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_port/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_port/ | +SSH port. Used for running remote commands on servers. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_timeout/ | +SSH connection and command timeout | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssh_user/ | +SSH username. Used for running remote commands on servers. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_on_low_disk_space/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_on_low_disk_space/ | +Perform a switchover when a server runs out of disk space | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/switchover_timeout/ | +Timeout for switchover | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user,Monitor.mariadbmon/ | +Username used to monitor the servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/verify_master_failure/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/verify_master_failure/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/verify_master_failure/ | +Verify master failure | +
The parameters for readwritesplit:
+Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_all_servers,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_all_servers,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_all_servers,Router.readwritesplit/ | +Retrieve users from all backend servers instead of only one | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/causal_reads/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/causal_reads/ | +Configures read causality, reads subsequent to writes issued in manner to reduce replication lag | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/causal_reads_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/causal_reads_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/causal_reads_timeout/ | +Timeout for synchronization of the Primary Server with a Replica Server during causal reads | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_keepalive,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_keepalive,Router.readwritesplit/ | +How ofted idle connections are pinged | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_timeout,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_timeout,Router.readwritesplit/ | +Connection idle timeout | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/delayed_retry/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/delayed_retry/ | +Retry queries that fail to route due to connection issues | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/delayed_retry_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/delayed_retry_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/delayed_retry_timeout/ | +Timeout for retrying queries that fail to route due to connection issues | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disable_sescmd_history,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disable_sescmd_history,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disable_sescmd_history,Router.readwritesplit/ | +Disable session command history | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enable_root_user,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enable_root_user,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enable_root_user,Router.readwritesplit/ | +Allow the root user to connect to this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/force_connection_keepalive,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/force_connection_keepalive,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/force_connection_keepalive,Router.readwritesplit/ | +Ping connections unconditionally | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readwritesplit/ | +Put connections into pool after session has been idle for this long | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/lazy_connect/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/lazy_connect/ | +Create connections only when needed | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readwritesplit/ | +Match localhost to wildcard host | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_auth_warnings,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_auth_warnings,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_auth_warnings,Router.readwritesplit/ | +Log a warning when client authentication fails | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_debug,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_debug,Router.readwritesplit/ | +Log debug messages for this service (debug builds only) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_info,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_info,Router.readwritesplit/ | +Log info messages for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_notice,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_notice,Router.readwritesplit/ | +Log notice messages for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warning,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warning,Router.readwritesplit/ | +Log warning messages for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_accept_reads,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_accept_reads,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_accept_reads,Router.readwritesplit/ | +Use master for reads | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_failure_mode/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_failure_mode/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_failure_mode/ | +Master failure mode behavior | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_reconnection/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_reconnection/ | +Reconnect to the Primary Server if it changes mid-session | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_connections,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_connections,Router.readwritesplit/ | +Maximum number of connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_sescmd_history,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_sescmd_history,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_sescmd_history,Router.readwritesplit/ | +Session command history size | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_connections/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_connections/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_connections/ | +Maximum number of connections the router session can use to connect to Replica Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_replication_lag/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_replication_lag/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_replication_lag/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_slave_replication_lag/ | +Number of seconds a Replica Server is allowed to fall behind the Primary Server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/multiplex_timeout,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/multiplex_timeout,Router.readwritesplit/ | +How long a session can wait for a connection to become available | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/net_write_timeout,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/net_write_timeout,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/net_write_timeout,Router.readwritesplit/ | +Network write timeout | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/optimistic_trx/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/optimistic_trx/ | +Optimistically offload transactions to slaves | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/password,Router.readwritesplit/ | +Password for the user used to retrieve database users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/prune_sescmd_history,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/prune_sescmd_history,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/prune_sescmd_history,Router.readwritesplit/ | +Prune old session command history if the limit is exceeded | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rank,Router.readwritesplit/ | +Service rank | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,Router.readwritesplit/ | +Number of statements kept in memory | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retry_failed_reads/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retry_failed_reads/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retry_failed_reads/ | +Automatically retry failed reads outside of transactions | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/reuse_prepared_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/reuse_prepared_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/reuse_prepared_statements/ | +Reuse identical prepared statements inside the same connection | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace,Router.readwritesplit/ | +Enable session tracing for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readwritesplit/ | +Track session state using server responses | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_connections/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_connections/ | +Starting number of slave connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_selection_criteria/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_selection_criteria/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/slave_selection_criteria/ | +Criteria the router uses to select Replica Servers in load balancing read operations | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strict_multi_stmt/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strict_multi_stmt/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strict_multi_stmt/ | +Routes multi-statement queries to the Primary Server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strict_sp_calls/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strict_sp_calls/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strict_sp_calls/ | +RoutesĀ https://mariadb.com/docs/skysql-dbaas/ref/mdb/sql-statements/CALL/Ā statements to the Primary Server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strip_db_esc,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strip_db_esc,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strip_db_esc,Router.readwritesplit/ | +Strip escape characters from database names | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay/ | +Replays in progress transactions that fail on a different Server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_attempts/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_attempts/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_attempts/ | +Maximum number of times to attempt to replay failed transactions | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_checksum/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_checksum/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_checksum/ | +Type of checksum to calculate for results | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_max_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_max_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_max_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_max_size/ | +Maximum size in bytes permitted for transaction replays | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_deadlock/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_deadlock/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_deadlock/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_deadlock/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_deadlock/ | +Maximum number of times the router attempts to replay transactions in the event that the transaction fails due to deadlocks | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_mismatch/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_mismatch/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_mismatch/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_mismatch/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_retry_on_mismatch/ | +Retry transaction on checksum mismatch | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/transaction_replay_timeout/ | +Timeout for transaction replay | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/use_sql_variables_in/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/use_sql_variables_in/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/use_sql_variables_in/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/use_sql_variables_in/ | +Where the router sends session variable queries | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user,Router.readwritesplit/ | +Username used to retrieve database users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file,Router.readwritesplit/ | +Load additional users from a file | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readwritesplit/ | +When and how the user accounts file is used | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/version_string,Router.readwritesplit/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/version_string,Router.readwritesplit/ | +Custom version string to use | +
The parameters for MariaDBProtocol:
+Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/address,Protocol.MariaDBProtocol/ | +Listener address | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/authenticator,Protocol.MariaDBProtocol/ | +Listener authenticator | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/authenticator_options,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/authenticator_options,Protocol.MariaDBProtocol/ | +Authenticator options | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_init_sql_file,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_init_sql_file,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_init_sql_file,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_init_sql_file,Protocol.MariaDBProtocol/ | +Path to connection initialization SQL | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/port,Protocol.MariaDBProtocol/ | +Listener port | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/protocol,Protocol.MariaDBProtocol/ | +Listener protocol to use | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/service,Protocol.MariaDBProtocol/ | +Service to which the listener connects to | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/socket,Protocol.MariaDBProtocol/ | +Listener UNIX socket | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/sql_mode,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/sql_mode,Protocol.MariaDBProtocol/ | +SQL parsing mode | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl,Protocol.MariaDBProtocol/ | +Enable TLS for server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca,Protocol.MariaDBProtocol/ | +Path to the X.509 certificate authority chain file in PEM format. In MaxScale 6 and earlier, this parameter was namedĀ https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,Protocol.MariaDBProtocol/. In MaxScale 22.08,Ā ssl_ca_certĀ was renamed toĀ ssl_ca. For backward compatibility,Ā ssl_ca_certĀ can be used as an alias, but MariaDB recommends usingĀ ssl_caĀ becauseĀ ssl_ca_certĀ has been deprecated. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,Protocol.MariaDBProtocol/ | +Alias forĀ https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca,Protocol.MariaDBProtocol/ | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert,Protocol.MariaDBProtocol/ | +TLS public certificate | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,Protocol.MariaDBProtocol/ | +TLS certificate verification depth | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cipher,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cipher,Protocol.MariaDBProtocol/ | +TLS cipher list | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_crl,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_crl,Protocol.MariaDBProtocol/ | +TLS certificate revocation list | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_key,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_key,Protocol.MariaDBProtocol/ | +TLS private key | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,Protocol.MariaDBProtocol/ | +Verify TLS peer certificate | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,Protocol.MariaDBProtocol/ | +Verify TLS peer host | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_version,Protocol.MariaDBProtocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_version,Protocol.MariaDBProtocol/ | +Minimum TLS protocol version | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_mapping_file/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_mapping_file/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_mapping_file/ | +Path to user and group mapping file | +
The parameters for readconnroute:
+Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_all_servers,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_all_servers,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_all_servers,Router.readconnroute/ | +Retrieve users from all backend servers instead of only one | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_keepalive,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_keepalive,Router.readconnroute/ | +How ofted idle connections are pinged | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_timeout,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/connection_timeout,Router.readconnroute/ | +Connection idle timeout | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disable_sescmd_history,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disable_sescmd_history,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disable_sescmd_history,Router.readconnroute/ | +Disable session command history | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enable_root_user,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enable_root_user,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/enable_root_user,Router.readconnroute/ | +Allow the root user to connect to this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/force_connection_keepalive,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/force_connection_keepalive,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/force_connection_keepalive,Router.readconnroute/ | +Ping connections unconditionally | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/idle_session_pool_time,Router.readconnroute/ | +Put connections into pool after session has been idle for this long | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/localhost_match_wildcard_host,Router.readconnroute/ | +Match localhost to wildcard host | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_auth_warnings,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_auth_warnings,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_auth_warnings,Router.readconnroute/ | +Log a warning when client authentication fails | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_debug,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_debug,Router.readconnroute/ | +Log debug messages for this service (debug builds only) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_info,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_info,Router.readconnroute/ | +Log info messages for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_notice,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_notice,Router.readconnroute/ | +Log notice messages for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warning,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warning,Router.readconnroute/ | +Log warning messages for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_accept_reads,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_accept_reads,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/master_accept_reads,Router.readconnroute/ | +Route read operations to the Primary Server or whether it only accepts write operations | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_connections,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_connections,Router.readconnroute/ | +Maximum number of connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_replication_lag,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_replication_lag,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_replication_lag,Router.readconnroute/ | +Maximum acceptable replication lag | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_sescmd_history,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_sescmd_history,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_sescmd_history,Router.readconnroute/ | +Session command history size | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/multiplex_timeout,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/multiplex_timeout,Router.readconnroute/ | +How long a session can wait for a connection to become available | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/net_write_timeout,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/net_write_timeout,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/net_write_timeout,Router.readconnroute/ | +Network write timeout | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/password,Router.readconnroute/ | +Password for the user used to retrieve database users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/prune_sescmd_history,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/prune_sescmd_history,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/prune_sescmd_history,Router.readconnroute/ | +Prune old session command history if the limit is exceeded | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rank,Router.readconnroute/ | +Service rank | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,Router.readconnroute/ | +Number of statements kept in memory | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/router_options,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/router_options,Router.readconnroute/ | +A comma separated list of server roles | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace,Router.readconnroute/ | +Enable session tracing for this service | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_track_trx_state,Router.readconnroute/ | +Track session state using server responses | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strip_db_esc,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strip_db_esc,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/strip_db_esc,Router.readconnroute/ | +Strip escape characters from database names | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user,Router.readconnroute/ | +Username used to retrieve database users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file,Router.readconnroute/ | +Load additional users from a file | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/user_accounts_file_usage,Router.readconnroute/ | +When and how the user accounts file is used | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/version_string,Router.readconnroute/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/version_string,Router.readconnroute/ | +Custom version string to use | +
The parameters for maxscale:
+Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_auth/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_auth/ | +Admin interface authentication | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_enabled/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_enabled/ | +Admin interface is enabled | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_gui/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_gui/ | +Enable admin GUI | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_host/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_host/ | +Admin interface host | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_jwt_algorithm/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_jwt_algorithm/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_jwt_algorithm/ | +JWT signature algorithm | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_jwt_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_jwt_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_jwt_key/ | +Encryption key ID for symmetric signature algorithms. If left empty, MaxScale will generate a random key that is used to sign the JWT. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_log_auth_failures/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_log_auth_failures/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_log_auth_failures/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_log_auth_failures/ | +Log admin interface authentication failures | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_oidc_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_oidc_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_oidc_url/ | +Extra public certificates used to validate externally signed JWTs | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readonly_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readonly_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readonly_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readonly_service/ | +PAM service for read-only users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readwrite_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readwrite_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readwrite_service/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_pam_readwrite_service/ | +PAM service for read-write users | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_port,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_port,maxscale.maxscale/ | +Admin interface port | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_secure_gui/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_secure_gui/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_secure_gui/ | +Only serve GUI over HTTPS | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca/ | +Admin SSL CA cert | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_ca_cert/ | +Alias for 'admin_ssl_ca' | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_cert/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_cert/ | +Admin SSL cert | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_key/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_key/ | +Admin SSL key | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_version/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_version/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_ssl_version/ | +Minimum required TLS protocol version for the REST API | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_verify_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_verify_url/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/admin_verify_url/ | +URL for third-party verification of client tokens | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_connect_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_connect_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_connect_timeout/ | +Connection timeout for fetching user accounts | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_read_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_read_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_read_timeout/ | +Read timeout for fetching user accounts (deprecated) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_write_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_write_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auth_write_timeout/ | +Write timeout for for fetching user accounts (deprecated) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auto_tune/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/auto_tune/ | +Specifies whether a MaxScale parameter whose value depends on a specific global server variable, should automatically be updated to match the variable's current value | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_cluster/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_cluster/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_cluster/ | +Cluster used for configuration synchronization. If left empty (i.e., value is ""), synchronization is not done. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_db/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_db/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_db/ | +Database where the 'maxscale_config' table is created | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_interval/ | +How often to synchronize the configuration | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_password/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_password/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_password/ | +Password for the user used for configuration synchronization | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_timeout/ | +Timeout for the configuration synchronization operations | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/config_sync_user/ | +User account used for configuration synchronization | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/debug,maxscale.maxscale/ | +Debug options | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/dump_last_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/dump_last_statements/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/dump_last_statements/ | +In what circumstances should the last statements that a client sent be dumped | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/key_manager/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/key_manager/ | +Key manager type | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/load_persisted_configs/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/load_persisted_configs/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/load_persisted_configs/ | +Specifies whether persisted configuration files should be loaded on startup | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/local_address,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/local_address,maxscale.maxscale/ | +Local address to use when connecting | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_debug,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_debug,maxscale.maxscale/ | +Specifies whether debug messages should be logged (meaningful only with debug builds) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_info,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_info,maxscale.maxscale/ | +Specifies whether info messages should be logged | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_notice,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_notice,maxscale.maxscale/ | +Specifies whether notice messages should be logged | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_throttling/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_throttling/ | +Limit the amount of identical log messages than can be logged during a certain time period | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warn_super_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warn_super_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warn_super_user/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warn_super_user/ | +Log a warning when a user with super privilege logs in | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warning,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/log_warning,maxscale.maxscale/ | +Specifies whether warning messages should be logged | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_auth_errors_until_block/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_auth_errors_until_block/ | +The maximum number of authentication failures that are tolerated before a host is temporarily blocked | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_read_amount/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_read_amount/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_read_amount/ | +Maximum amount of data read before return to epoll_wait | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/maxlog/ | +Log to MaxScale's own log | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ms_timestamp/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ms_timestamp/ | +Enable or disable high precision timestamps | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/passive/ | +True if MaxScale is in passive mode | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/persist_runtime_changes/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/persist_runtime_changes/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/persist_runtime_changes/ | +Persist configurations changes done at runtime | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier/ | +The name of the query classifier to load | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_args/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_args/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_args/ | +Arguments for the query classifier | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_cache_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_cache_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_cache_size/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_classifier_cache_size/ | +Type: size, default value is 15% of available memory | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_retries/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_retries/ | +Number of times an interrupted query is retried | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_retry_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_retry_timeout/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/query_retry_timeout/ | +The total timeout in seconds for any retried queries | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebalance_period/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebalance_period/ | +How often should the load of the worker threads be checked and rebalancing be made | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebalance_threshold/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebalance_threshold/ | +If the difference in load between the thread with the maximum load and the thread with the minimum load is larger than the value of this parameter, then work will be moved from the former to the latter | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebalance_window/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rebalance_window/ | +The load of how many seconds should be taken into account when rebalancing | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/retain_last_statements,maxscale.maxscale/ | +How many statements should be retained for each session for debugging purposes | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace,maxscale.maxscale/ | +How many log entries are stored in the session specific trace log | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace_match/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace_match/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/session_trace_match/ | +Regular expression that is matched against the contents of the session trace log and if it matches the contents are logged when the session stops | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/skip_name_resolve/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/skip_name_resolve/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/skip_name_resolve/ | +Do not resolve client IP addresses to hostnames during authentication | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/skip_permission_checks/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/skip_permission_checks/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/skip_permission_checks/ | +Skip service and monitor permission checks | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/sql_mode,maxscale.maxscale/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/sql_mode,maxscale.maxscale/ | +The query classifier sql mode | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/syslog/ | +Log to syslog | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/threads/ | +Type: count, default value is based on cpu count | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/users_refresh_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/users_refresh_interval/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/users_refresh_interval/ | +How often the users will be refreshed | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/users_refresh_time/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/users_refresh_time/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/users_refresh_time/ | +How often the users can be refreshed | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/writeq_high_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/writeq_high_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/writeq_high_water/ | +High water mark of dcb write queue | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/writeq_low_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/writeq_low_water/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/writeq_low_water/ | +Low water mark of dcb write queue | +
The parameters for server objects:
+Parameter | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/address,servers.servers/ | +Server address | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/authenticator,servers.servers/ | +Server authenticator (deprecated) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_threshold,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_threshold,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/disk_space_threshold,servers.servers/ | +Server disk space threshold | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/extra_port/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/extra_port/ | +Server extra port | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_routing_connections/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_routing_connections/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/max_routing_connections/ | +Maximum routing connections | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/monitorpw/ | +Monitor password | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/monitoruser/ | +Monitor user | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/persistmaxtime/ | +Maximum time that a connection can be in the pool | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/persistpoolmax/ | +Maximum size of the persistent connection pool | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/port,servers.servers/ | +Server port | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/priority/ | +Server priority | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/protocol,servers.servers/ | +Server protocol (deprecated) | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/proxy_protocol/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/proxy_protocol/ | +Enable proxy protocol | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/rank,servers.servers/ | +Server rank | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/socket,servers.servers/ | +Server UNIX socket | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl,servers.servers/ | +Enable TLS for server | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca,servers.servers/ | +Path to the X.509 certificate authority chain file in PEM format. In MaxScale 6 and earlier, this parameter was namedĀ https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,servers.servers/. In MaxScale 22.08,Ā ssl_ca_certĀ was renamed toĀ ssl_ca. For backward compatibility,Ā ssl_ca_certĀ can be used as an alias, but MariaDB recommends usingĀ ssl_caĀ becauseĀ ssl_ca_certĀ has been deprecated. | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca_cert,servers.servers/ | +Alias forĀ https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_ca,servers.servers/ | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert,servers.servers/ | +TLS public certificate | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cert_verify_depth,servers.servers/ | +TLS certificate verification depth | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cipher,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_cipher,servers.servers/ | +TLS cipher list | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_key,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_key,servers.servers/ | +TLS private key | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_certificate,servers.servers/ | +Verify TLS peer certificate | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_verify_peer_host,servers.servers/ | +Verify TLS peer host | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_version,servers.servers/https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/ssl_version,servers.servers/ | +Minimum TLS protocol version | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/module-parameters/type,servers.servers/ | +Object type | +
The following Monitors are supported by MariaDB MaxScale 22.08:
+Monitor | +Description | +
---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/monitor/auroramon/ | +Tracks Servers in an Amazon Aurora deployment | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/monitor/csmon/ | +Tracks Servers in a MariaDB ColumnStore deployment | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/monitor/galeramon/ | +Tracks Servers in a MariaDB Enterprise Cluster deployment | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/monitor/grmon/ | +Tracks Servers in a MySQL Group Replication deployment | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/monitor/mariadbmon/ | +Tracks Servers in a MariaDB Replication deployment | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/monitor/xpandmon/ | +A Xpand cluster monitor | +
To see Monitors supported in other versions, seeĀ "Monitors by MariaDB MaxScale Version".
+MariaDB MaxScale uses protocols to specify how it communicates with a given client, server, or back-end.
+The following MaxScale Protocols are supported by MariaDB MaxScale 22.08:
+Protocol | +Description | +
---|---|
CDC | +Used with connections to a CDC service | +
MariaDBProtocol | +The client to MaxScale MySQL protocol implementation | +
nosqlprotocol | +MaxScale NoSQL client protocol implementation | +
To see MaxScale Protocols supported in other versions, seeĀ "MaxScale Protocols by MariaDB MaxScale Version".
+The following Routers are supported by MariaDB MaxScale 22.08:
+Router | +Type | +Description | +
---|---|---|
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/avrorouter/ | +Replication | +Avro Router renders Binary Log events to JSON or Avro files and passed through the CDC Protocol to other services, like Kafka or Hadoop | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/binlogrouter/ | +Replication | +Binary Log Router serves binlog events to Replica Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/cat/ | +Query | +Cat Router sends queries to all Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/hintrouter/ | +Query | +Hint Router uses routing hints to specify where to send queries | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/kafkacdc/ | ++ | Replicate data changes from MariaDB to Kafka | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/kafkaimporter/ | ++ | Stream Kafka messages into MariaDB | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/mirror/ | ++ | Mirrors SQL statements to multiple targets | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/readconnroute/ | +Query | +Read Connection Router balances the query load across the available Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/readwritesplit/ | +Query | +Read/Write Splitter sends write operations to the Primary Server and balances the query load of read operations between the Replica Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/replicator/ | ++ | + |
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/schemarouter/ | +Query | +Schema Router provides simple sharding of data across multiple Servers | +
https://mariadb.com/docs/skysql-dbaas/ref/mxs/routing/smartrouter/ | ++ | Provides routing for the Smart Query feature | +
To see Routers supported in other versions, seeĀ "Routers by MariaDB MaxScale Version".
+ + + + + + + + + + + + + +Panel Name | +UI Tab | +Scope | +Panel Type | +Description | +
---|---|---|---|---|
Connections | +status | +service | +table | +This panel shows the number of used and aborted connections for each ES node along with theĀ max_connectionsĀ value | +
CPU Load | +status | +service | +graph | +This panel shows the CPU usage for each ES node during the selected time interval | +
Current SQL Commands | +status | +service | +pie-chart | +This panel shows the ratio between the types of SQL statements executed by the service during the selected time interval | +
Disk Size of Data | +status | +service | +table | +"This panel shows the amount of storage space used (as the usage percentage | +
QPS | +status | +service | +graph | +This panel shows the queries per second (QPS) executed by the ES node during the selected time interval | +
Replicas lags | +status | +service | +table | +This panel shows average values for certain replication-related metadata to help determine if the replica ES nodes are currently lagging behind the primary ES node | +
Replicas status | +status | +service | +table | +This panel shows summarized values for certain replication-related metadata to help determine if any replica ES nodes encountered replication issues during the selected time interval | +
GTID Replication Position | +lags | +service | +graph | +This panel shows the Global Transaction ID (GTID) for each ES node during the selected time interval | +
Seconds Behind Primary | +lags | +service | +graph | +This panel shows the lag in seconds behind the primary in terms of the time of the transaction being replicated. | +
Exec Primary Log Position | +lags | +service | +graph | +This panel shows the position up to which the primary has processed in the current primary binary log file. | +
Read Primary Log Position | +lags | +service | +graph | +This panel shows the position up to which the I/O thread has read in the current primary binary log file. | +
MariaDB Client Thread Activity | +queries | +service | +graph | +This panel shows the number of client threads running on all ES nodes during the selected time interval | +
MariaDB QPS | +queries | +service | +graph | +This panel shows the number of queries per second (QPS) executed by all ES nodes during the selected time interval | +
MariaDB Slow Queries | +queries | +service | +graph | +This panel shows the number of slow queries executed by all ES nodes during the selected time interval | +
MariaDB Slow Queries | +queries | +service | +graph | +This panel shows the number of slow queries executed by all ES nodes during the selected time interval | +
Top Command Counters | +queries | +service | +graph | +This panel shows the top 30 statement types that were most frequently executed by all ES nodes during the selected time interval | +
Top Command Counters Hourly | +queries | +service | +graph | +This panel shows the top 30 statement types that were most frequently executed by all ES nodes in 1 hour intervals over the past 24 hours | +
MariaDB Aborted Connections | +database | +service | +graph | +This panel shows the number of connections aborted by the ES node during the selected time interval | +
MariaDB Open Tables | +database | +service | +graph | +This panel shows the number of tables opened by the database servers on all ES nodes during the selected time interval | +
MariaDB Service Connections | +database | +service | +graph | +This panel shows the number of clients connected to the ES node during the selected time interval | +
MariaDB Table Locks | +database | +service | +graph | +This panel shows the number of table locks requested by all ES nodes during the selected time interval | +
MariaDB Table Opened | +database | +service | +graph | +This panel shows the number of tables that have been opened by all ES nodes during the selected time interval | +
MaxScale Server Connections | +database | +service | +graph | +This panel shows the number of client connections open between the MaxScale node and each ES node during the selected time interval | +
MaxScale Service Connections | +database | +service | +graph | +This panel shows the number of clients connected to all MaxScale nodes during the selected time interval | +
CPU Load | +system | +service | +graph | +This panel shows the CPU usage for each ES node during the selected time interval | +
Disk Size of Data | +system | +service | +graph | +This panel shows the amount of storage space used by all ES nodes during the selected time interval | +
I/OActivity - Page In | +system | +service | +graph | +This panel shows the total number of bytes read from the ES node's file system during the selected time interval | +
I/O Activity - Page Out | +system | +service | +graph | +This panel shows the total number of bytes written to the ES node's file system during the selected time interval | +
IOPS - Page In | +system | +service | +graph | +This panel shows the total number of reads performed from the ES node's file system during the selected time interval | +
IOPS - Page Out | +system | +service | +graph | +This panel shows the total number of writes performed from the ES node's file system during the selected time interval | +
MariaDB Network Traffic | +system | +service | +graph | +This panel shows the amount of data sent and received over the network by the database servers on all ES nodes during the selected time interval | +
MariaDB Network Usage Hourly | +system | +service | +graph | +This panel shows the amount of data sent and received over the network per hour by the database servers on all ES nodes over the past 24 hours | +
Memory Usage | +system | +service | +graph | +This panel shows memory usage details for all ES nodes during the selected time interval | +
Network Errors | +system | +service | +graph | +This panel shows the number of network errors encountered by all ES nodes during the selected time interval | +
Network Packets Dropped | +system | +service | +graph | +This panel shows the number of network packets dropped by all ES nodes during the selected time interval | +
Network Traffic - Inbound | +system | +service | +graph | +This panel shows the amount of data received over the network by the operating systems on all ES nodes during the selected time interval | +
Network Traffic - Outbound | +system | +service | +graph | +This panel shows the amount of data sent over the network by the operating systems on all ES nodes during the selected time interval | +
Aborted Connections | +status | +server | +singlestat | +This panel shows the number of aborted connections for the ES node during the selected time interval | +
Buffer Pool Size of Total RAM | +status | +server | +pie-chart | +This panel shows the current size of the InnoDB buffer pool for the ES node in two units: the absolute size and the percentage of the server's usable memory | +
Connections | +status | +server | +stat | +This panel shows the number of clients connected to the MaxScale node | +
CPU Load | +status | +server | +gauge | +This panel shows the current CPU usage for the ES node | +
CPU Usage / Load | +status | +server | +graph | +This panel shows the CPU usage for the ES node during the selected time interval | +
QPS/ | +status | +server | +singlestat | +This panel shows the number of queries per second (QPS) processed by the ES node during the selected time interval | +
Current SQL Commands | +status | +server | +pie-chart | +This panel shows the ratio between the types of SQL statements executed by the ES node during the selected time interval | +
I/O Activity | +status | +server | +graph | +This panel shows the total number of bytes written to or read from the ES node's file system during the selected time interval | +
InnoDB Data/sec | +status | +server | +graph | +This panel shows the number of bytes per second read and written by InnoDB during the selected time interval | +
Max Connections | +status | +server | +graph | +This panel shows the highest number of clients that were concurrently connected to the MaxScale node during the selected time interval | +
Max Connections | +status | +server | +stat | +This panel shows the highest number of clients that have ever been concurrently connected to the MaxScale node | +
Max Time in Queue | +status | +server | +graph | +This panel shows the longest time the MaxScale node waited for an I/O event during the selected time interval | +
Network Traffic | +status | +server | +graph | +This panel shows the amount of data sent and received over the network by the operating system on the ES node during the selected time interval | +
Memory Usage | +status | +server | +gauge | +This panel shows the current memory usage details for the ES node | +
Resident (RSS) memory | +status | +server | +gauge | +This panel shows the current resident set size (RSS) of the MaxScale process | +
RO Service Connections | +status | +server | +singlestat | +This panel shows the number of clients currently connected to the MaxScale node's read-only listener | +
Rows / sec | +status | +server | +graph | +This panel shows the total number of rows written and read per second by the ES node during the selected time interval | +
RW Service Connections | +status | +server | +singlestat | +This panel shows the number of clients currently connected to the MaxScale node's read-write listener | +
RW / sec | +status | +server | +graph | +This panel shows the number of read and write operations per second that were handled by the threads on the MaxScale node during the selected time interval | +
Database Server Connections | +status | +server | +graph | +This panel shows the number of client connections open between the MaxScale node and each ES node during the selected time interval | +
MaxScale Connections | +status | +server | +graph | +This panel shows the number of clients connected to the MaxScale node's listeners during the selected time interval | +
Stack size | +status | +server | +gauge | +This panel shows the current stack size of the MaxScale node | +
Threads | +status | +server | +singlestat | +This panel shows the number of threads currently used by the MaxScale node | +
RW/sec | +status | +server | +graph | +This panel shows the total number of queries that were actively being executed by the MaxScale node during the selected time interval | +
MaxScale Connections | +status | +server | +graph | +This panel shows the total number of connections created by the MaxScale node since the MaxScale node was started | +
Used Connections | +status | +server | +pie-chart | +This panel shows the current number of client connections as a percentage of the ES node'sĀ max_connectionsĀ value | +
MariaDB Aborted Connections | +database | +server | +graph | +This panel shows the number of connections aborted by the ES node during the selected time interval | +
MariaDB Client Thread Activity | +database | +server | +graph | +This panel shows the number of client threads connected and running on the ES node during the selected time interval | +
MariaDB Connections | +database | +server | +graph | +This panel shows the number of client connections to the ES node during the selected time interval | +
MariaDB Open Files | +database | +server | +graph | +This panel shows the number of files opened by the database server on the ES node during the selected time interval | +
MariaDB Open Tables | +database | +server | +graph | +This panel shows the number of tables opened by the database server on the ES node during the selected time interval | +
MariaDB Opened Files / sec | +database | +server | +graph | +This panel shows the number of files opened per second by the database server on the ES node during the selected time interval | +
MariaDB Table Locks | +database | +server | +graph | +This panel shows the number of table locks requested by the ES node during the selected time interval | +
Temporary Objects Created | +database | +server | +graph | +This panel shows the number of temporary tables created by the ES node during the selected time interval | +
MariaDB Table Definition Cache | +caches | +server | +graph | +This panel shows how many table definitions were cached by the ES node during the selected time interval | +
MariaDB Table Open Cache Status | +caches | +server | +graph | +This panel shows the activity of the table open cache on the ES node during the selected time interval | +
MariaDB Thread Cache | +caches | +server | +graph | +This panel shows the number of threads created and cached for re-use on the ES node during the selected time interval | +
MariaDB Handlers / sec | +queries | +server | +graph | +This panel shows how many internal query handlers per second have been created by the ES node during the selected time interval | +
MariaDB QPS and Questions | +queries | +server | +graph | +This panel shows the number of queries and questions per second executed by the ES node during the selected time interval | +
MariaDB Slow Queries | +queries | +server | +graph | +This panel shows the number of slow queries executed by the ES node during the selected time interval | +
MariaDB Sorts | +queries | +server | +graph | +This panel shows the number of times the ES node has used certain algorithms to sort data during the selected time interval | +
MariaDB Handlers / sec | +queries | +server | +graph | +This panel shows the number of transaction-related handlers created by the ES node during the selected time interval | +
Top Command Counters | +queries | +server | +graph | +This panel shows the top 30 statement types that were most frequently executed by the ES node during the selected time interval | +
Top Command Counters Hourly | +queries | +server | +graph | +This panel shows the top 30 statement types that were most frequently executed by the ES node in 1 hour intervals over the past 24 hours | +
CPU Usage / Load | +system | +server | +graph | +This panel shows the CPU usage for the ES node during the selected time interval | +
Disk Size of Data | +system | +server | +graph | +This panel shows the amount of storage space used by the ES node during the selected time interval | +
Disk Size of Logs | +system | +server | +graph | +This panel shows the amount of storage space used by the server error logs during the selected time interval | +
I/O Activity | +system | +server | +graph | +This panel shows the total number of bytes written to or read from the ES node's file system during the selected time interval | +
InnoDB Data / sec | +system | +server | +graph | +This panel shows the number of bytes per second read and written by InnoDB during the selected time interval | +
IOPS | +system | +server | +graph | +This panel shows the number of input/output operations per second performed by the ES node during the selected time interval | +
MariaDB Memory Overview | +system | +server | +graph | +"This panel shows how much memory the ES node used for the InnoDB buffer pool | +
MariaDB Network Traffic | +system | +server | +graph | +This panel shows the amount of data sent and received over the network by the database server on the ES node during the selected time interval | +
MariaDB Network Usage Hourly | +system | +server | +graph | +This panel shows the amount of data sent and received over the network per hour by the database server on the ES node over the past 24 hours | +
Memory Distribution | +system | +server | +graph | +This panel shows memory usage details for the ES node during the selected time interval | +
Network Errors | +system | +server | +graph | +This panel shows the number of network errors encountered by the ES node during the selected time interval | +
Network Packets Dropped | +system | +server | +graph | +This panel shows the number of network packets dropped by the ES node during the selected time interval | +
Network Traffic | +system | +server | +graph | +This panel shows the amount of data sent and received over the network by the operating system on the ES node during the selected time interval | +
Errors | +performance | +server | +graph | +This panel shows the number of errors encountered by threads on the MaxScale node during the selected time interval | +
MaxScale Descriptors | +performance | +server | +graph | +This panel shows the number of descriptors used by the MaxScale node during the selected time interval | +
MaxScale Hangups | +performance | +server | +graph | +This panel shows the number of client connections closed by the MaxScale node during the selected time interval | +
Memory Usage | +performance | +server | +graph | +This panel shows memory usage details for the MaxScale node during the selected time interval | +
MaxScale Modules | +modules | +server | +table | +This panel lists the modules installed on the MaxScale node | +
The easiest way to get started with the API is to use this swagger Docs. Just generate your API key , Click Authorize
and enter <yourAPI Key>
and try out any of the APIs.
You can use the REST API to Provision, get pricing and billing information, fetch/change service or MariaDB configuration, Manage users and their roles, schedule backups or restores, scale, stop and Delete services.
+Please refer to the API docs for examples and a complete list of all the APIs.
+The Backup Service API is available here
+ + + + + + + + + + + + + +Region | +Location | +
---|---|
ap-northeast-1 | +Tokyo, Japan | +
ap-northeast-2 | +Seoul, South Korea | +
ap-southeast-1 | +Jurong West, Singapore | +
ap-southeast-2 | +Sydney, Australia | +
ca-central-1 | +MontrƩal, QuƩbec, Canada | +
eu-central-1 | +Frankfurt, Germany | +
eu-north-1 | +Stockholm, Sweden | +
eu-west-1 | +Dublin, Ireland | +
eu-west-2 | +London, England, UK | +
eu-west-3 | +Paris, France | +
sa-east-1 | +SĆ£o Paulo, Brazil | +
us-east-1 | +Northern Virginia, USA | +
us-east-2 | +Ohio, USA | +
us-west-2 | +Oregon, USA | +
Region | +Location | +
---|---|
asia-northeast1 | +Tokyo, Japan | +
asia-south1 | +Mumbai, India | +
asia-southeast1 | +Jurong West, Singapore | +
asia-southeast2 | +Jakarta, Indonesia | +
australia-southeast1 | +Sydney, Australia | +
europe-north1 | +Hamina, Finland | +
europe-west1 | +St. Ghislain, Belgium | +
europe-west2 | +London, England, UK | +
europe-west3 | +Frankfurt, Germany | +
europe-west4 | +Eemshaven, Netherlands | +
europe-west9 | +Paris, France | +
northamerica-northeast1 | +MontrƩal, QuƩbec, Canada | +
us-central1 | +Council Bluffs, Iowa, USA | +
gcp-us-east1 | +Moncks Corner, South Carolina, USA | +
us-east4 | +Ashburn (Loudoun County), Virginia, USA | +
us-west1 | +The Dalles, Oregon, USA | +
us-west2 | +Los Angeles, California, USA | +
us-west4 | +Las Vegas, Nevada, USA | +
Region | +Location | +
---|---|
eastus | +Richmond, Virginia, USA | +
northeurope | +Dublin, Ireland, USA | +
PleaseĀ contact usĀ if any aspect of service does not align to your intended use case.
+ + + + + + + + + + + + + +Executes theĀ CHANGEĀ MASTERĀ TOĀ statement to configures inbound replication from an external primary server based on binary log file and position.
+CALL sky.change_external_primary(
+ host VARCHAR(255),
+ port INT,
+ logfile TEXT,
+ logpos LONG ,
+ use_ssl_encryption BOOLEAN
+);
+
-- Run_this_grant_on_your_external_primary |
+GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>'; |
+
Sets the connection retry interval for the external replication master.
+CALL change_connect_retry(connect_retry INT);
+
If the value is NULL, a default retry interval of 60 seconds will be used.
+Executes theĀ CHANGEĀ MASTERĀ TOĀ statement to configures inbound replication from an external primary server based on the provided GTID.
+CALL sky.change_external_primary_gtid(
+ host VARCHAR(255),
+ port INT,
+ gtid VARCHAR(60),
+ use_ssl_encryption BOOLEAN
+);
+
-- Run_this_grant_on_your_external_primary
+GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>';
+
Sets the heartbeat period for the external replication master.
+CALL change_heartbeat_period(heartbeat_period DECIMAL(10,3));
+
If the value is NULL, a default heartbeat period of 5 seconds will be used.
+Sets the replication delay for the external replication master.
+CALL change_replica_delay(replica_delay INT);
+
If the value is NULL, a default delay of 1 second will be used.
+Toggles the SSL encryption setting for the external replication master.
+CALL change_use_ssl_encryption(use_ssl_encryption BOOLEAN);
+
If the value is NULL, SSL encryption will be enabled by default.
+Provides a list of GTID-relatedĀ system variables.
+CALL sky.gtid_status();
+
+-------------------+---------------------------+
+| Variable_name | Value |
++-------------------+---------------------------+
+| gtid_binlog_pos | 435700-435700-122 |
+| gtid_binlog_state | 435700-435700-122 |
+| gtid_current_pos | 0-100-1,435700-435700-122 |
+| gtid_slave_pos | 0-100-1 |
++-------------------+---------------------------+
+
Kills any non-root or non-SkySQL threads, similar to theĀ KILLĀ statement.
+CALL sky.kill_session(IN thread BIGINT);
+
Provides aĀ GRANTĀ statement to run on an external primary server when configuring inbound replication.
+CALL sky.replication_grants();
+
-- Run_this_grant_on_your_external_primary
+GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>';
+
Executes theĀ SHOWĀ REPLICAĀ STATUSĀ statement to obtain the status of inbound replication.
+CALL sky.replication_status()\G
+
*************************** 1. row ***************************
+ Slave_IO_State: Waiting for master to send event
+ Master_Host: mariadb1.example.com
+ Master_User: skysql_replication
+ Master_Port: 3306
+ Connect_Retry: 60
+ Master_Log_File: mariadb-bin.000001
+ Read_Master_Log_Pos: 558
+ Relay_Log_File: mariadb-relay-bin.000002
+ Relay_Log_Pos: 674
+ Relay_Master_Log_File: mariadb-bin.000001
+ Slave_IO_Running: Yes
+ Slave_SQL_Running: Yes
+ Replicate_Do_DB:
+ Replicate_Ignore_DB:
+ Replicate_Do_Table:
+ Replicate_Ignore_Table:
+ Replicate_Wild_Do_Table:
+ Replicate_Wild_Ignore_Table:
+ Last_Errno: 0
+ Last_Error:
+ Skip_Counter: 0
+ Exec_Master_Log_Pos: 558
+ Relay_Log_Space: 985
+ Until_Condition: None
+ Until_Log_File:
+ Until_Log_Pos: 0
+ Master_SSL_Allowed: No
+ Master_SSL_CA_File:
+ Master_SSL_CA_Path:
+ Master_SSL_Cert:
+ Master_SSL_Cipher:
+ Master_SSL_Key:
+ Seconds_Behind_Master: 0
+ Master_SSL_Verify_Server_Cert: No
+ Last_IO_Errno: 0
+ Last_IO_Error:
+ Last_SQL_Errno: 0
+ Last_SQL_Error:
+ Replicate_Ignore_Server_Ids:
+ Master_Server_Id: 100
+ Master_SSL_Crl:
+ Master_SSL_Crlpath:
+ Using_Gtid: Slave_Pos
+ Gtid_IO_Pos: 0-100-1
+ Replicate_Do_Domain_Ids:
+ Replicate_Ignore_Domain_Ids:
+ Parallel_Mode: conservative
+ SQL_Delay: 0
+ SQL_Remaining_Delay: NULL
+ Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
+ Slave_DDL_Groups: 0
+Slave_Non_Transactional_Groups: 0
+ Slave_Transactional_Groups: 0
+
Executes theĀ RESETĀ REPLICAĀ statement to clear inbound replication configuration.
+CALL sky.reset_replication();
+
+------------------------+
+| Message |
++------------------------+
+| Replica has been reset |
++------------------------+
+
Toggles theĀ MASTER_SSL
Ā replication option using theĀ CHANGEĀ MASTERĀ TOĀ statement.
CALL sky.set_master_ssl();
+
This stored procedure can be used to ignore a transaction that is causing a replication error.
+Executes theĀ STOPĀ REPLICAĀ statement, then sets theĀ sql_slave_skip_counterĀ system variable, and then executes theĀ STARTĀ REPLICAĀ statement to skip a single transaction. Does not currently work with GTID.
+CALL sky.skip_repl_error();
+
Executes theĀ STARTĀ REPLICAĀ statement to start inbound replication from an external primary.
+CALL sky.start_replication();
+
+----------------------------------------+
+| Message |
++----------------------------------------+
+| External replication running normally. |
++----------------------------------------+
+
Start the external replication until a specified relay log file and position. It checks if the replication threads are running and starts the replication if they are not. It also provides feedback on the replication status.
+CALL start_replication_until(relay_log_file TEXT, relay_log_pos LONG);
+
Starts the external replication until the specified GTID position. It checks if the replication threads are running and starts the replication if they are not. It also provides feedback on the replication status.
+CALL start_replication_until_gtid(master_gtid_pos TEXT);
+
Executes theĀ STOPĀ REPLICAĀ statement to stop inbound replication from an external primary.
+CALL sky.stop_replication();
+
+---------------------------------+
+| Message |
++---------------------------------+
+| Replication is down or disabled |
++---------------------------------+
+
SkySQL services are firewall-protected.
+Access to SkySQL services is managed on a per-service basis.
+IPv4 addresses and IPv4 netblocks can be added to the allowlist to enable service access. Access from other addresses will be blocked.
+By default, when a service is launched its allowlist is empty. All external traffic to the service is blocked.
+To modify Secure Access settings:
+Secure Access Settings
+Alternatively, you can access firewall settings for a specific service by clicking on the "MANAGE" button for the desired service, then choose "Manage allowlist" from the menu.
+ +Allowlist dialog
+IP addresses can be added to the allowlist from the Firewall settings interface or a service's Security Access interface:
+After saving the change, aĀ notificationĀ will be provided when the change has been applied.
+IP addresses can be removed from the allowlist from the Firewall settings interface or a service's Security Access interface:
+After saving the change, aĀ notificationĀ will be provided when the change has been applied.
+An allowlist entry can be edited from the Firewall settings interface or a service's Security Access interface:
+After saving the change, aĀ notificationĀ will be provided when the change has been applied.
+ + + + + + + + + + + + + +SkySQL features data-in-transit encryption by default.
+By default, SkySQL services feature data-in-transit encryption for client connections: +-TLS 1.2 and TLS 1.3 are supported. SSL/TLS certificates and encryption settings are not customer-configurable.
+For information on how to connect with TLS, see "Connect and Query".
+The "Disable SSL/TLS" option may be appropriate for some customers when also using AWS PrivateLink or GCP VPC Peering.
+SkySQL services perform server-to-server communication between MariaDB MaxScale, MariaDB Enterprise Server, MariaDB Xpand nodes, and SkySQL infrastructure.
+By default, these server-to-server communications are protected with data-in-transit encryption:
+For SkySQL Services on AWS, see "Encryption in transit(AWS)". SkySQL uses configurations which feature automatic in-transit encryption.
+For SkySQL Services on GCP, see "Encryption in transit (GCP)". SkySQL uses encryption by default.
+SkySQL features transparent data-at-rest encryption.
+SkySQL Services on AWS use Amazon EBS encryption.
+SkySQL Services on GCP benefits from encryption by default.
+ + + + + + + + + + + + + +Go to SkySQL API Key management page: https://app.skysql.com/user-profile/api-keys and generate an API key
+Export the value from the token field to an environment variable $API_KEY
+Use it on subsequent request, e.g: +
curl --request GET 'https://api.skysql.com/provisioning/v1/services' \
+ --header "X-API-Key: $API_KEY"
+
Use the Portal to create new, revoke or permanently delete these Keys.
+OR
+You can use the swagger API portal to manage the keys.
+By default, SkySQL services are launched and managed in theĀ Portal.
+For multiple SkySQL ID accounts to jointly manage a set of SkySQL services, these accounts can be added to a Team.
+The User Management interface in theĀ PortalĀ is a self-service tool to manage your Team.
+A Team can be managed by the initial user on the Team or by any Administrator added to the Team.
+An email address can belong to only one SkySQL Team. If an email address is already in a Team, it cannot be added to another Team.
+To access the User Management interface:
+User Management
+Each Team member has one of the following roles:
+User Management - Invite
+From the User Management interface, an Administrator can invite someone to join a team:
+Once a user has been invited, they will appear in the Team member list in an "Invited" status until the invitation is accepted.
+An invitation is delivered by email. The user will be prompted to complete account setup when accepting the invitation.
+You can withdraw the invitation before it is accepted by clicking on the "Cancel Invitation" link in the Team member list.
+From the User Management interface, an Administrator can remove a team member:
+From the User Management interface, an Administrator can change a team member's role:
+By default, authentication to the SkySQL Portal is performed with SkySQL ID credentials.
+Users with personal accounts with Google, GitHub LinkedIn or business Google G Suite accounts can authenticate via social login. This ability does not depend on enterprise authentication configuration.
+ + + + + + + + + + + + + +Some customers may have regulatory requirements or information security policies which prohibit the default database connections over the public internet.
+SkySQL services can optionally be configured for private connections using cloud provider-specific features - See Using Private VPC Connections for details on how to set this up.
+By default, client traffic to SkySQL services may transit the public internet and is protected with TLS/SSL and a firewall configured by IP allowlist.
+ + + + + + + + + + + + + +Note
+TODO - describe security properly - things like how storage is encrypted, between zones, etc
+SkySQL takes security very seriously and provides security at all levels - encryption on-the-wire, encrypted storage, guarded compute, multiple levels of authentication and Authorization.
+It complies with several security standards like SOC2, GDPR and ISO-27000.
+For details, see the specific topics listed below.
+ + + + + + + + + + + + + + + + + + + +SkySQL is operated by a team of site reliability engineers (SREs), support engineers and MariaDB-certified database administrators (SkyDBAs).
+Foundation level support is included with every SkySQL Subscription. Support cases at this standard support level can only be created with the P3 or P4 response SLA.
+Power level support expands the Standard level offering with Problem Resolution Support, Engineering Support and 24x7 support for S1 issues. With provided logs and information. Support will work with Customer through the needed steps for resolution via communication within the Customer Support Portal.
+Support Feature | +Foundation | +Power | +
---|---|---|
Availability | +Foundation Tier | +Power Tier | +
Named Technical Support Contacts | +3 | +10 | +
Problem Resolution Support | +Yes | +Yes | +
Engineering Support | +Yes | +Yes | +
Active Monitoring | +Yes | +Yes | +
Consultative Support | +No | +Yes | +
SkyDBA Add-on Available | +No | +Yes | +
Real-Time Chat | +No | +Yes, with SkyDBA Add-on Option | +
SLA Response Time | +* P3, 4 hours (24x5) * P4, 8 hours (24x5) |
+* P1, 30 minutes (24x7) * P2, 2 hours (24x5) * P3, 4 hours (24x5) * P4, 8 hours (24x5) |
+
A definitive description of SkySQL support can be found in the SkySQL Support Policy.
+Support cases are managed through the Support Portal, which is accessible to all registered users.
+Users unable to reach the Support Portal can also use Support Email.
+ + + + + + + + + + + + + +AWS PrivateLink is an AWS service that enables secure and private connectivity between Virtual Private Clouds (VPCs) and third-party services. By using PrivateLink with SkySQL services, traffic does not traverse the public internet, which enhances security and reduces exposure to potential threats.
+For detailed information about AWS PrivateLink, seeĀ "AWS PrivateLink" (Amazon documentation).
+{
+ "name": "my-skysql-service",
+ ...
+ "endpoint_mechanism": "privateconnect",
+ "allowed_accounts": [
+ "AWS-ACCOUNT-ID-1",
+ "AWS-ACCOUNT-ID-2"
+ ]
+}
+
resource "skysql_service" "example" {
+ name = "my-skysql-service"
+ ...
+ endpoint_mechanism = "privateconnect"
+ endpoint_allowed_accounts = ["123456789012"]
+}
+
For the next step, see theĀ AWS Endpoint SetupĀ section on this page.
+++[!CAUTION] +Enabling PrivateLink on an existing service will cause all existing connections to be dropped. The service will be unavailable for a short period of time while the public endpoint is replaced with the new PrivateLink endpoint.
+
[
+ {
+ "mechanism": "privateconnect",
+ "allowed_accounts": [
+ "AWS-ACCOUNT-ID-1",
+ "AWS-ACCOUNT-ID-2"
+ ]
+ }
+]
+
For the next step, see theĀ AWS Endpoint SetupĀ section on this page.
+To connect to a SkySQL service using AWS PrivateLink, you must create an endpoint in your VPC that connects to the SkySQL service. The endpoint will be used by clients in your VPC to connect to the SkySQL service.
+curl https://api.skysql.com/provisioning/v1/services/{SERVICE_ID} | jq ".endpoints[0].endpoint_service"
+
After creation, the Endpoint will be in Pending
status while AWS provisions the new endpoint. Once the endpoint is Available
, you can connect to your SkySQL service using the new endpoint.
+The newly created endpoint now authorizes the internal IPs or security groups that you specified in the Source values to access the SkySQL service's connection port. When testing a client connection, ensure that the client host is authorized by the security group's Source settings and that you're using the "readwrite
" port plus the appropriate username and password (either the default values or the value for any user you have created).
After creating your VPC endpoint, AWS will create a number of DNS records that will resolve to the private IP addresses of your Privatelink Endpoint. +- The first DNS name in the list can be used from any availability zone in your VPC and will resolve to the private IP address of the endpoint in the same availability zone. +- The following DNS names provided are availability zone specific and rely on the user to match the correct DNS name to the availability zone of the client instance. +- If connecting via these DNS names, we recommend using the first DNS name in the list to ensure that the connection is routed to the correct availability zone.
+++[!NOTE] +The DNS names provided by AWS will always be in the domain
+amazonaws.com
. If connecting to your SkySQL service using SSL/TLS, the database certificate will not match the VPC endpoint name. Due to this, we recommend Enabling Private DNS for AWS PrivateLink.
In order to connect to your SkySQL service using the skysql.com service name provided in the SkySQL portal, you must enable Private DNS for the VPC endpoint. This will allow the service name to resolve to the private IP address of the SkySQL service.
+The following requirements must be met to enable Private DNS for the VPC endpoint: +- Private DNS must be enabled for the VPC. +- Your client instances must use the default AWS DNS server provided by the VPC (this is usually turned on by default).
+To enable Private DNS for the VPC endpoint: +1. Log in to the AWS console. +2. Confirm the correct region is selected. +3. Navigate to the "VPC" page, then the "Endpoints" section. +4. Select the VPC endpoint that you created for your SkySQL service. +5. Click the "Actions" button, then select "Modify Private DNS Name". +6. In the popup window, select the checkbox to "Enable Private DNS Name". +7. Click the "Save changes" button.
+After a short period of time, the service name provided in the SkySQL portal should resolve to the private IP address of the SkySQL service via PrivateLink. You can test this by connecting to the service using the service name provided in the portal.
+++[!CAUTION] +Disabling PrivateLink on an existing service will cause all existing connections to be dropped. The service will be unavailable for a short period of time while the private endpoint is replaced with the new public endpoint.
+
[
+ {
+ "mechanism": "nlb"
+ }
+]
+
Google Private Service Connect (PSC) is a Google Cloud service that enables secure and private connectivity between Virtual Private Clouds (VPCs) and third-party services. By using PSC with SkySQL services, traffic does not traverse the public internet, which enhances security and reduces exposure to potential threats.
+For detailed information about Google PSC, see "Private Service Connect" (Google documentation).
+{
+ "name": "my-skysql-service",
+ ...
+ "endpoint_mechanism": "privateconnect",
+ "allowed_accounts": [
+ "GCP-PROJECT-ID-1",
+ "GCP-PROJECT-ID-2"
+ ]
+}
+
resource "skysql_service" "example" {
+ name = "my-skysql-service"
+ ...
+ endpoint_mechanism = "privateconnect"
+ endpoint_allowed_accounts = ["GCP-PROJECT-ID-1", "GCP-PROJECT-ID-2"]
+}
+
For the next step, see theĀ PSC Endpoint SetupĀ section on this page.
+++[!CAUTION] +Enabling PSC on an existing service will cause all existing connections to be dropped. The service will be unavailable for a short period of time while the public endpoint is replaced with the new PSC endpoint.
+
[
+ {
+ "mechanism": "privateconnect",
+ "allowed_accounts": [
+ "GOOGLE-PROJECT-ID-1",
+ "GOOGLE-PROJECT-ID-2"
+ ]
+ }
+]
+
For the next step, see theĀ PSC Endpoint SetupĀ section on this page.
+To connect to a SkySQL service using Google PSC, you must create an endpoint in your VPC that connects to the SkySQL service. The endpoint will be used by clients in your VPC to connect to the SkySQL service.
+curl https://api.skysql.com/provisioning/v1/services/{SERVICE_ID} | jq ".endpoints[0].endpoint_service"
+
We recommend use of a subnet dedicated to Private Service Connect endpoints in the same VPC where the application is running.
+In the GCP console, navigate Network services ā Private Service Connect ā CONNECTED ENDPOINTS ā CONNECT ENDPOINT.
+Configure the endpoint connection:
+After creation, the Endpoint should have a status of Accepted
. If this status is not present, please ensure your Google Project ID is added to the list of allowed accounts in the SkySQL portal for this service.
After creating your PSC endpoint, your service should be available within your VPC at the Private IP Address you assigned to the endpoint. +- DNS propagation from SkySQL to the Private IP address is not supported when using PSC. +- The hostname when connecting to your SkySQL service should always be the Private IP address of the PSC endpoint.
+++[!NOTE] +When using PSC with SSL/TLS, there will be a hostname mismatch since the hostname provisioned by SkySQL will not match your internal IP Address. This can be ignored as the connection is still secure.
+
++[!CAUTION] +Disabling PSC on an existing service will cause all existing connections to be dropped. The service will be unavailable for a short period of time while the private endpoint is replaced with the new public endpoint.
+
[
+ {
+ "mechanism": "nlb"
+ }
+]
+
By default, connections to SkySQL cloud databases occur with TLS/SSL encryption and can be initiated only from allowlisted IP addresses.
+Some customers have regulatory requirements or information security policies that prohibit database connections over the public internet, and result in a requirement for private connections.
+SkySQL cloud databases can optionally be configured for private connections between your VPC (virtual private clouds) and SkySQL cloud databases:
+