• 使用ef core自动生成mysql表和数据编码的问题


    mysql默认的编码是不支持中文的,需要改成utf8编码格式。

    而我使用的Pomelo.EntityFrameworkCore.MySql组件生成mysql库和表,他是使用默认编码的。

    网上大多说修改配置文件Character Set=utf8,我这里测试无效。

    所以就想到修改mysql的默认编码。

    在mysql安装目录下找到my.ini(我这里是这个名字,命名可以修改。只要创建服务的时候指定你自己的配置文件命名就ok)

    [client]
    default-character-set=utf8mb4
    [mysqld]
    basedir=D:mysql-5.7.25-winx64
    datadir=D:mysql-5.7.25-winx64data
    port=3306
    
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    [mysql]
    default-character-set=utf8mb4

    修改配置文件如上。重启mysql服务, cmd输入

    net stop mysql && net start mysql

    运行程序,重新生成库和表。

    发现无效。生成的编码格式并不是utf8

    执行mysql查询命令:

    show variables like '%char%';  

    可以发现设置是成功了的。当时就心态就崩了,

    然后执行命令手动创建一个库

    create database encodtest

    编码设置是成功了的。

    找了好久解决办法。突然看到一个将mysql服务卸了重装的办法,死马当活马医吧!

    首先,停止mysql服务

    net stop mysql

    然后卸载

    sc delete mysql

    最后进入mysql安装的bin目录执行

    mysqld install

    然后启动服务

    net start mysql

    重新运行程序。成功解决。

    不知道为什么我的必须要重装服务。。

  • 相关阅读:
    原码, 反码, 补码的基础概念和计算方法.
    QoS in RoCE
    TCP拥塞控制算法之NewReno和SACK
    intel xeon家族介绍
    Intel 处理器架构演进 转
    IP报文头详解
    高性能网络服务器编程:为什么linux下epoll是最好,Netty要比NIO.2好?
    tcp拥塞控制 tahoe reno new reno sack
    TCP/IP详解--拥塞控制 慢启动 快恢复 拥塞避免
    LTTng 简介&使用实战
  • 原文地址:https://www.cnblogs.com/FateHuli/p/10879955.html
Copyright © 2020-2023  润新知