1. 程式人生 > >MySQL修改 /etc/my.cnf 資料庫的預設編碼

MySQL修改 /etc/my.cnf 資料庫的預設編碼

在使用 SQLAlchemy 連到 MySQL 上create 出來的 table, 預設都是

DEFAULT CHARSET=latin1

即使 SQLAlchemy 在設定 echo=True, 有看到SQLAlchemy有去設定 connection 的 Charset=’utf-8′, 結果 table 出來還是 latin1

SQLAlchemy 官方檔案:

Mysql 看 create table 句子:

mysql> show create table device;

結果:

| device | CREATE TABLE `device` (
 `UDID` varchar(60) NOT NULL,
 `IP` varchar(20) DEFAULT NULL,
`queue` blob,
 PRIMARY KEY (`UDID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

解法,修改 MySQL Server 的系統設定檔:

修改 /etc/my.cnf:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_BACKSLASH_ESCAPES