Configuring MySQL for utf8 under homebrew
Man, every time I set up mysql it takes me half an hour to google up all the documentation of how to make it just work™ with utf-8 instead of the god forsaken latin1 default. So here it is once and for all.
Server my.cnf
should contain:
[mysqld] collation_server=utf8_general_ci character_set_server=utf8
The location of my.cnf varies depending on how you install it. dev.mysql.com has a nice summary of how my.cnf is looked up.
Since I use homebrew my location is /usr/local/var/mysql/my.cnf
. Binary installations differ.
Server config variables are described under Server System Variables
Client configuration goes in ~/.my.cnf
:
[client] default-character-set=utf8
Client config variables are described under mysql Options
You can check the status of these with SHOW VARIABLES
Finally, as a reminder for homebrew users, if you use the com.mysql.mysqld launchd plist that comes with the homebrew formula then you will want to start and stop the server via launchctl:
launchctl stop com.mysql.mysqld ... launchctl start com.mysql.mysqld
Nick Rutherford says…
June 25, 2010 at 1:23AM
Thanks for the write-up.
Between this and the /usr/local/share/mysql/my*.cnf files I turned off network login (sock only), set the unicode defaults (which bit me hard recently), and learned a bit about using launchctl.