Posted over 11 years ago. Visible to the public.

Dumping and importing from/to MySQL in an UTF-8 safe way

In a nutshell: to avoid your shell character set from messing with imports, use -r to export and SOURCE when importing.

Dumping safely

Copy
# Do not do this, since it might screw up encoding mysqldump -uroot -p database > utf8.dump # this is bad

Better do:

Copy
mysqldump -uroot -p database -r utf8.dump

Note that when your MySQL server is not set to UTF-8 you need to do mysqldump --default-character-set=latin1 (!) to get a correctly encoded dump. In that case you will also need to remove the SET NAMES='latin1' comment at the top of the dump, so the target machine won't change its UTF-8 charset when sourcing.

If you only want to dump the structure without data, use

Copy
mysqldump -uroot -p --no-data database -r utf8.dump

Importing a dump safely

Copy
# Do not do this, since it might screw up encoding mysql -u username -p database < dump_file # this is bad

Better do:

Copy
mysql -uroot -p --default-character-set=utf8mb4 database mysql> SET names 'utf8' mysql> SOURCE utf8.dump

Flaky tests are tests that sometimes fail for no obvious reason. They are the plague of many end-to-end (E2E) test suites that automate the browser through tools like Capybara and Selenium.

Join our free training event and learn to fix any flaky test suite, even in large legacy applications.

Owner of this card:

Avatar
Henning Koch
Last edit:
almost 2 years ago
by Daniel Straßner
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Henning Koch to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more