2015-12-13 88 views
5

我在我的Ubuntu 14.04上安装了MySQL 5.7.8。不能更改MySQL 5.7中的字符集(从拉丁到utf8)

但我无法修改MySQL的默认字符集。我想将charset更改为utf8。

我在互联网上搜索并查看了很多文章,但是我尝试的每种方法都不适用于我。

我已在/etc/mysql/my.cnf中添加'character-set-server = utf8'和'collat​​ion-server = utf8_general_ci'。但它不工作...

如何更改我的MySQL字符集?请回答我!

  • 状态在MySQL

    Connection:    Localhost via UNIX socket 
    Server characterset: latin1 
    Db  characterset: latin1 
    Client characterset: utf8 
    Conn. characterset: utf8 
    UNIX socket:   /var/run/mysqld/mysqld.sock 
    Uptime:     1 min 24 sec 
    
  • 显示变量,如 'C%'

    | character_set_client  | utf8      | 
    | character_set_connection | utf8      | 
    | character_set_database | latin1      | 
    | character_set_filesystem | binary      | 
    | character_set_results | utf8      | 
    | character_set_server  | latin1      | 
    | character_set_system  | utf8      | 
    | character_sets_dir  | /usr/share/mysql/charsets/ | 
    | check_proxy_users  | OFF      | 
    | collation_connection  | utf8_general_ci   | 
    | collation_database  | latin1_swedish_ci   | 
    | collation_server   | latin1_swedish_ci   | 
    | completion_type   | NO_CHAIN     | 
    | concurrent_insert  | AUTO      | 
    | connect_timeout   | 10       | 
    | core_file    | OFF      | 
    
  • my.cnf中(在/ etc/MySQL的)

    [mysqld] 
    # 
    # * Basic Settings 
    # 
    character-set-server=utf8 
    collation-server=utf8_general_ci 
    user   = mysql 
    pid-file  = /var/run/mysqld/mysqld.pid 
    socket   = /var/run/mysqld/mysqld.sock 
    port   = 3306 
    basedir   = /usr 
    datadir   = /var/lib/mysql 
    tmpdir   = /tmp 
    lc-messages-dir = /usr/share/mysql 
    skip-external-locking 
    character-set-server=utf8 
    collation-server=utf8_general_ci 
    init_connect=set collation_connection=utf8_general_ci 
    init_connect=set names utf8 
    character-set-client-handshake=FALSE 
    

回答

5
  • 设置UTF-8 character setcollation为MySQL服务器:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

然后按并添加以下内容:

... 
[mysqld] 
character-set-server=utf8 
collation-server=utf8_general_ci 
... 

Esc键然后w then q

然后重新启动服务器:

sudo /etc/init.d/mysql restart 

检查您的配置:

mysql> show variables like "%character%"; 


+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | utf8      | 
| character_set_connection | utf8      | 
| character_set_database | utf8      | 
| character_set_filesystem | binary      | 
| character_set_results | utf8      | 
| character_set_server  | utf8      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.01 sec) 

mysql> show variables like "%collation%"; 


+----------------------+-----------------+ 
| Variable_name  | Value   | 
+----------------------+-----------------+ 
| collation_connection | utf8_general_ci | 
| collation_database | utf8_general_ci | 
| collation_server  | utf8_general_ci | 
+----------------------+-----------------+ 
3 rows in set (0.00 sec) 
  • 设置UTF-8 character setcollation数据库和表:

指定它明确地wh恩创建数据库:

CREATE DATABASE some_database CHARACTER SET utf8 COLLATE utf8_general_ci;

检查您的配置:

mysql> SHOW CREATE DATABASE ... 
mysql> SHOW CREATE TABLE ...