We ran into some character encoding issues with our automated tests on Travis recently. Luckily, it’s very easy to change the MySQL configuration in your test environment.
If you look at the default
my.cnf configuration file in the sudo-enabled environment, you will see that it ends with a
This directive will look for any
.cnf file in
/etc/mysql/conf.d/ and load it. It allows you to add new configuration values or overwrite existing ones. This keeps things nicely organised and easy to manage.
To make use of this option, you need to make sure that you are running Travis builds in a sudo-enabled environment. In your
Then, create the custom configuration file. I put it in
[mysqld] collation-server=utf8_unicode_ci character-set-server=utf8
Finally, move the config file to the right location and restart MySQL to pick up the changes before you run your tests. In
before_install: - sudo cp $TRAVIS_BUILD_DIR/_travis/mysql.cnf /etc/mysql/conf.d/ - sudo service mysql restart
That’s it: your Travis builds now runs with your custom MySQL configuration!