mariadb中文字符集

2年前 (2016-10-16) admin mysql高可用 0评论 已收录 857℃
                                                 mariadb中文字符集



1、#修改数据库字符集
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


#修改表中字段字符集
ALTER TABLE `stu` CHANGE `sname` `sname` VARCHAR(20) CHARACTER SET utf8 NOT NULL;

修改表的编码方式:
ALTER TABLE `test` DEFAULT CHARACTER SET utf8;该命令用于将表test的编码方式改为utf8; 


修改字段的编码方式:
ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 该命令用于将表test中name字段的编码方式改为utf8



2、修改my.cnf

[client]
default-character-set=utf8    #添加此行

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8      #添加以下2行
init_connect='SET NAMES utf8'

[mysql]
no-auto-rehash
default-character-set=utf8     #添加此行

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid


3、重启服务

  service mysqld  restart


4、查看字符集

   -->mysql -uroot -p

   -->show variables like 'character_set%';

   -->show create table 表名;  #查看表的字符编码

-----------------------------------------------------------
二、避免导入数据有中文乱码的问题

1:将数据编码格式保存为utf-8

    设置默认编码为utf8:

    set names utf8;

    设置数据库db_name默认为utf8:

    ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    设置表tb_name默认编码为utf8:

    ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


    导入:

    LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;

2:将数据编码格式保存为ansi(即GBK或GB2312)

    设置默认编码为gbk:

    set names gbk;

    设置数据库db_name默认编码为gbk:
 
    ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

    设置表tb_name默认编码为gbk:

    ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

    导入:

    LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;

    注:

    1.UTF8不要导入gbk,gbk不要导入UTF8;

    2.dos下不支持UTF8的显示;

三、解决网页中乱码的问题

将网站编码设为 utf-8,这样可以兼容世界上所有字符。

  如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK,

 GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。

    1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;

    2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;

    3.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用

utf8或者gbk;
博主

让学习成为习惯,坚持-共享-开源-自由! 成功者决不放弃,放弃者绝不成功!

相关推荐

嗨、骚年、快来消灭0回复。