MySQL
Reference for the humanitec/mysql driver
This provisions a new MySQL database in an existing MySQL instance. The instance must be reachable from Humanitec IPs.
Property | Description |
---|---|
Resource Type | |
Account Type | None |
Name | Type | Description |
---|---|---|
host | string | The IP Address or hostname that the instance is available on. |
port | integer | The port the instance is listening on. |
append_host_to_user | boolean | [Optional] Azure Databases for Postgres and MySQL require usernames to have @servername appended to them. Set this to true for the driver to append this automatically. (See: Azure Database connection strings) |
copy_from_name | string | [Optional] If provided, specifies the database in the same instance to copy data from. |
Name | Type | Description |
---|---|---|
dbcredentials | object | An object holding username and password properties for the PostgreSQL super user. |
MySQL does not provide any standard way of duplicating databases. Instead, the suggested approach is to "dump and restore" a database using tools such as mysqldump.
This driver emulates a dump and restore of the database - i.e. it serially copies data from the source database to the target database. It therefore suffers from limitations of dumping and restoring a database. The main issue is that if the source database is being written to, there are no guarantees about the data integrity in the resulting database. Consider a source database with 2 tables A and B:
- 1.Table A is copied to the target database.
- 2.New data is then written to Table A and Table B in the source database.
- 3.Table B is copied from the source database to the target database.
The target database will now have the updated to table B but not table A.
This functionality should not be used for production databases or where data integrity must be guaranteed.
To create a fresh MySQL database in an instance available at
dev-mysql.example.com
:curl https://api.humanitec.io/orgs/${HUMANITEC_ORG}/resources/defs \
-X POST \
-H "Authorization: Bearer ${HUMANITEC_TOKEN}" \
-H "Content-Type: application/json" \
--data-binary '
{
"id": "dev-mysql",
"name": "Dev MySQL",
"type": "mysql",
"criteria": [
{
"env_type": "development"
}
],
"driver_type": "humanitec/mysql",
"driver_inputs": {
"values": {
"host": "dev-mysql.example.com",
"port": 3306
},
"secrets": {
"dbcredentials": {
"username": "root",
"password": "53cr3t-P455w0rd"
}
}
}
}'
Last modified 8mo ago