01.`Ubuntu18.04`下修改`mysql`默认的编码

对于Ubuntu18.04,使用apt install mysql-server安装的mysql,系统默认的字符编码是latin1,这个字符集并不支持中文,输入中文时会出现乱码甚至错误,因此可以修改字符编码为常用的utf8、支持emojiutf8mb4编码集、GBK等。

  1. 进入数据库,有两条命令可以查看当前数据库的编码集。

    1. show variables like 'character%';

    mysql编码集1

    1. status;

    mysql编码集2

  2. 修改默认编码

    • Ubuntu绝大多数系统和相关服务的配置文件都在etc目录下,默认情况下,mysql的配置文件在/etc/mysql/目录下

    1. 进入/etc/mysql文件夹,查看当前文件夹的文件

      # 进入 /etc/mysql/文件夹
      cd /etc/mysql/
      # 查看当前文件夹下的文件以及目录
      ls -l
      

      mysql配置文件

      mysql.cnf就是mysql的配置文件。

    2. 查看mysql.cnf的内容

      # 查看文件内容并展示行号
      cat -n mysql.cnf
      

      mysql.cnf文件内容

      mysql.cnfmysql的基础配置文件,在最后引用了两个文件/etc/mysql/conf.d/(client端)和/etc/mysql/mysql.conf.d/(server端)

    3. 编辑server端的编码集

      • vim /etc/mysql/mysql.conf.d/mysqld.cnf

      编辑mysqld.cnf

      • skip-external-locking下面添加character-set-server = utf8

      修改server端编码集

    4. 重启mysql

      • /etc/init.d/mysql restart

      重启mysql

    5. 进入mysql,查看是否已经修改默认编码

      方式1

      方式2

    6. 创建数据库、数据表并查看编码

      # 创建名为 db_test 的数据库
      create database db_test;
      # 展示创建数据库时的信息
      show create database db_test;
      

      展示创建数据库的默认编码

      use db_test;
      # 创建名为 test 的数据表
      create table test(
          test_id int not null primary key auto_increment comment '测试id',
          test_name varchar(32) not null comment '测试姓名'
      );
      # 展示创建数据表时的信息
      show create table test;
      

      展示创建数据表的默认编码

      查看插入数据是否有误

  3. 修改默认的排序规则

    1. 查看数据库的默认排序规则

      • show variables like 'collation%';

        查看默认排序规则

    2. 可以通过编辑server/etc/mysql/mysql.conf.d/mysqld.cnf文件来修改默认排序规则

      • vim /etc/mysql/mysql.conf.d/mysqld.cnf

        编辑mysqld.cnf

      • collation-server=utf8_unicode_ci

        • utf8_unicode_ci为例,一般都是utf8_general_ci

        添加规则

      • 重启mysql

        • /etc/init.d/mysql restart

        重启mysql

    3. 查看排序规则

      • show variables like 'collation%';

      查看排序规则

  4. 修改mysql编码的坑

    1. 不能修改client端的字符集,否则将会不能输入中文
    • 修改 mysql.cnf

    编辑mysql.cnf

    • 添加default-charcter-set = utf8

    添加default-character-set=utf8

    • sql语句不能输入中文,但是英文可以

    不能输入中文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值