• MySQL修改字符集


    问题:在终端中向MySQL中写入中文,报错

    原因:查询了一下MySQL的字符集

    错误在于MySQL-server的字符集为latin1,终端的字符集是utf8,所以写入报错

    解决: 将MySQL服务器的字符集改为utf8 ,具体方式如下:

    • 方式一:在终端中启动MySQL,然后将需要更改的字符集设置为utf8
      set character_set_database=utf8;
      set character_set_server=utf8;
    • 方式二:修改MySQL服务器的配置文件
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    1. 在[mysqld]段落中添加如下两行:
      character-set-server=utf8
      collation-server=utf8_general_ci 
    2. 重启MySQL:
      service mysql restart
    3. 然后登录MySQl,查看数据库字符集设置:
      show variables like 'character%';

       显示 

    查看字符集排序设置:

    show variables like 'collation_%';

     显示

      以上就大功告成了

    • 方式三:在终端使用命令将具体database的字符集改为utf8

    alert database db1 character set utf8; 

    但是旧table的字符集是没有改变的,将旧table的字符集改变为utf8

    alter table tb convert to character set utf8;

    注:数据无价,注意备份。

     

    几种方式的比较:

      第一种方式只是暂时起作用,新建的库和表是utf8的格式,但MySQL重新启动后就会失效,变成原来的字符集

      第二种方式更改的是MySQL服务器的字符集,再创建的数据库和表都是utf8的字符集,但是原来数据库和表的字符集没有改变

      第三种方式只能将现有的数据库和表更改为utf8,以及更改为utf8的数据库再创建的表字符集为utf8,但MySQL服务器的字符集没有改变,新建的database格式仍然不正确

    每种方式有自己的特点,结合起来用会更好

  • 相关阅读:
    web service基础知识
    saltstack高效运维
    vim与程序员
    主动学习与被动学习
    macos安装postman
    stm32——fmsc控制外部SRAM——小结
    关于头文件中的 static inline函数
    w25qxx的nor flash学习笔记
    C标准:C90、C99、C11_C/C++
    lubuntu16.04.6安装GMP库
  • 原文地址:https://www.cnblogs.com/zxhyJack/p/8597150.html
Copyright © 2020-2023  润新知