美文网首页
01.`Ubuntu18.04`下修改`mysql`默认的编码

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

作者: 风安峻_ | 来源:发表于2020-07-24 21:07 被阅读0次

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

    1. 进入数据库,有两条命令可以查看当前数据库的编码集。
      • show variables like 'character%';
    mysql编码集1
    • status;
    mysql编码集2
    1. 修改默认编码

      • 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端)

      1. 编辑server端的编码集

        • vim /etc/mysql/mysql.conf.d/mysqld.cnf
        编辑mysqld.cnf
        • skip-external-locking下面添加character-set-server = utf8
        修改server端编码集
      2. 重启mysql

        • /etc/init.d/mysql restart
        重启mysql
      3. 进入mysql,查看是否已经修改默认编码

        方式1 方式2
      4. 创建数据库、数据表并查看编码

        # 创建名为 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;
        
        展示创建数据表的默认编码 查看插入数据是否有误
    2. 修改默认的排序规则

      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%';
        查看排序规则
    3. 修改mysql编码的坑

      1. 不能修改client端的字符集,否则将会不能输入中文
      • 修改 mysql.cnf
      编辑mysql.cnf
      • 添加default-charcter-set = utf8
      添加default-character-set=utf8
      • sql语句不能输入中文,但是英文可以
      不能输入中文

    相关文章

      网友评论

          本文标题:01.`Ubuntu18.04`下修改`mysql`默认的编码

          本文链接:https://www.haomeiwen.com/subject/tfwslktx.html