Configuring UTF8 Character Set for MySQL

Last modified: 20 April 2023

To create a MySQL database which uses the utf8 character set:

  1. Create a new database: CREATE DATABASE <database name> DEFAULT CHARACTER SET utf8

  2. Open <TeamCity data directory> /config/database.properties, and add the characterEncoding property: connectionProperties.characterEncoding=UTF-8

To change the character set of an existing MySQL database to utf8:

  1. Shut the TeamCity server down.

  2. Dump the database data to the file dump_data.sql: mysqldump -t -u<user> -p<pass> <database>>dump_data.sql;

  3. Dump the database schema to the file dump_schema.sql: mysqldump -d -u<user> -p<pass> <database>>dump_schema.sql

  4. Edit dump_schema.sql. Remove DEFAULT CHARSET=<some charset> from the table and column definitions.

  5. Create a new database with uft8 as the default character set: CREATE DATABASE <new database name> DEFAULT CHARACTER SET utf8;

  6. Import dump_schema.sql into the new database: mysql -u<user> -p<pass> <new database name> <dump_schema.sql

  7. Import dump_data.sql into the new database: mysql -u<user> -p<pass> <new database name> <dump_data.sql

  8. Modify <TeamCity data directory> /config/database.properties file as follows:

    • change connectionUrl property to: jdbc:mysql://<host>/<new database name>

    • add characterEncoding property: connectionProperties.characterEncoding=UTF-8