Database issues with droneCI >1.0.0

Im currently trying to set up drone with the helm chart version 2.0.0-rc.7 and drone version 1.0.0-rc.5

I face different issues with the DB when setting up the connection to AWS RDS / MariaDB.

DB charset:
When I set the charset of the database to “utf8” with coallation “utf8_general_ci” or “utf8mb4” with coallation “utf8mb4_general_ci” then the error: " Error: Specified key was too long; max key length is 1000 bytes" pops up and drone does not start.
This can be fixed by using the charset “latin1”, but I guess a “utf8” support would be quite nice.

Database Triggers:
After fixing the above error by setting the charset to “latin1”, drone complains that: " You do not have the SUPER privilege and binary logging is enabled". Which seems to be raised when database triggers are used (at least according to this: https://techtavern.wordpress.com/2013/06/17/mysql-triggers-and-amazon-rds/). Is there any chance, that I can turn off those triggers and maintain a untriggered droneCI?

1 Like

I recommend testing 1.0.0 instead of 1.0.0-rc.5. I am pretty sure we changed some of the column sizes prior to the 1.0.0 final release.

Hi, I updated now to drone 1.0.0, but I still get the errors about the triggers as described in my post: “Error 1419: You do not have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)”. Is there a way to not setup triggers for drone somehow?

Also when using utf8 again, the key length error still occurs: “Error 1071: Specified key was too long; max key length is 767 bytes”

Is there a way to not setup triggers for drone somehow?

Sorry, triggers are required for mysql to compensate for their lack of partial indexes. They are not required for sqlite or postgres.

Also when using utf8 again, the key length error still occurs

I am unable to reproduce errors with mysql:5.7 or mysql:8. For reference, is the docker configuration that we use in our unit testing:

docker run \
 -p 3306:3306 \
 --env MYSQL_DATABASE=test \
 --env MYSQL_ALLOW_EMPTY_PASSWORD=yes \
 --name mysql \
 --detach \
 --rm \
 mysql:5.7 \
 --character-set-server=utf8mb4 \
 --collation-server=utf8mb4_unicode_ci

Thanks @bradrydzewski for the info. I noticed I use AWS RDS MariaDB in version 10.1 which seems to be compatible to MySQL version 5.6. Maybe this is the issue here for the charset/coallation problems.
Although, I think the simplest for me would be to use SQLite or Postgres now, since I don’t like the fact to enable triggers for my whole RDS instance.

Thanks again for your support!

Is the official not going to deal with mysql5.6 compatibility issues?

I have encountered this problem in the 0.x version, and now this problem exists on the 1.x version.

Drone officially supports mysql 5.7 and higher.

i had the same issue with drone 1.1.0 + mysql5.7, but i am using mysql from a cloud provider. I change the innodb_large_prefix = 1, and it works fine. hope it help.

reference: