官术网_书友最值得收藏!

Setting UTF-8 as the default encoding for MySQL configuration

MySQL is the most popular open source database. In this recipe, I will tell you how to set UTF-8 as the default encoding for it. Note that if you don't set this encoding in the database configuration, you might get into a situation where LATIN1 is used by default with your UTF-8 encoded data. This will lead to database errors whenever symbols such as € are used. Also, this recipe will save you from the difficulties of converting the database data from LATIN1 to UTF-8, especially when you have some tables encoded in LATIN1 and others in UTF-8.

Getting ready

Make sure that the MySQL database management system and the MySQLdb Python module are installed and you are using the MySQL engine in your project's settings.

How to do it…

Open the /etc/mysql/my.cnf MySQL configuration file in your favorite editor and ensure that the following settings are set in the sections: [client], [mysql], and [mysqld], as follows:

# /etc/mysql/my.cnf
[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

If any of the sections don't exist, create them in the file. Then, restart MySQL in your command-line tool, as follows:

$ /etc/init.d/mysql restart

How it works…

Now, whenever you create a new MySQL database, the databases and all their tables will be set in UTF-8 encoding by default.

Don't forget to set this in all computers where your project is developed or published.

主站蜘蛛池模板: 婺源县| 宁蒗| 苍南县| 阿克| 重庆市| 沾化县| 曲阳县| 台州市| 加查县| 长宁区| 庄浪县| 西城区| 宜兴市| 上饶市| 西畴县| 通海县| 宝坻区| 扎赉特旗| 灌云县| 长泰县| 汝城县| 桂林市| 乐平市| 克什克腾旗| 济南市| 林甸县| 张家港市| 依兰县| 托克托县| 深水埗区| 田林县| 江都市| 奇台县| 广元市| 孝感市| 绥中县| 鲁甸县| 大同市| 天峨县| 玉树县| 集安市|