How to set character_set_database and collation_database to utf8 in my.ini?

前端 未结 3 1883
眼角桃花
眼角桃花 2020-12-23 02:12

I\'ve googled a lot about this problem. To sum up, this is what my my.ini looks like:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[cli         


        
3条回答
  •  鱼传尺愫
    2020-12-23 03:03

    I do a summary:

    determine which charset/collations are available

    SHOW CHARSET;
    SHOW COLLATION;
    

    check charset

    SHOW VARIABLES LIKE '%character%';
    SHOW VARIABLES LIKE '%collation%';
    

    set charset (in configure file -> my.cnf)

    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_general_ci
    

    check database/table charset

    SHOW CREATE DATABASE databasename;
    SHOW CREATE TABLE tablename;
    

    change the database/table charset

    ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    

    set when create database/table:

    CREATE DATABASE new_db CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
    CREATE TABLE new_table (id INT) CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
    

    Note: I heard that in Mysql utf8 is not the true utf8,utf8mb4 is the real utf8. so, if you have special character that can't save to mysql, maybe you should use utf8mb4 and utf8mb4_general_ci

提交回复
热议问题