「MYSQL」解决中文无法导入mysql问题的几种尝试error1366--模拟学生成绩信息导入mysql

导入数据前后我都进行了设置 希望能保证中文信息顺利填入sql表

  1. 已经在mysql中建能想到需要的表几张,手动建在这里插入图片描述
    每张表都在建立时手动设置、输入初始化了列,和每列的数据格式
    在这里插入图片描述
  2. 在导入数据前,设置可能出现的中文乱码问题,但对我来说可能好像 都没用
    如何处理乱码问题
    处理乱码问题参考2
  3. 小白(我的)问题 如何在macOS的终端下使用mysql
    终端mysql指令
mysql -uroot -p123

mysql -uroot -p密码
123为我的密码 0.0

这下可以查看设置中文乱码的链接来提前进行防止中文乱码的设置了。

show create database test;
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

查看数据库的编码格式:
查看数据库的编码格式修改编码,改编码后查看数据库编码
改编码,改编码后查看数据库编码

可以像上文中在终端中修改,或者

insert数据前 在workbench中查看或修改

mysql workbench 中 点击靠右图标
mysql workbench 中   点击靠右图标
mysql中显示设置已改变为utf-8
mysql中显示设置已改变为utf-8

  1. 初始化学生成绩

终端使用mysql-建表并初始化数据

在终端中显示出所使用数据库studentgrade的表
在终端中显示出所使用数据库studentgrade的表

insert数据后 出现Error1366的两种尝试

  1. 以上所有的设置完成后,但当我在workbench中输入insert语句时,仍然出现错误1366,是有关字符编码的问题
    在这里插入图片描述
    于是重新进入终端,发现设置仍不完善,其中server的参数存在问题
    SHOW VARIABLES LIKE 'character%';character_set_server 的value并非utf-8
    character_set_server 的value并非utf-8,修改server以及database的参数
set character_set_database=utf8;
set character_set_server=utf8;
SHOW VARIABLES LIKE 'character%';

修改server以及database的参数
也可以尝试修改mysql中的my.ini文件,没找到在mac下此文件的修改方式…

  1. 插入中文数据尝试仍然失败,于是修改表的编码方式
 ALTER TABLE `StudentGrade`.`grade_15` CHARACTER SET = utf8;

修改具体表为utf-8
修改具体表为utf-8

最终解决问题的直接方法

  1. 最终方法:但以上方法插入中文数据尝试继续失败,于是修改列的编码
    查看得,果然是列的编码方式在以上各种修改后仍顽强的为latin1,终于找到了问题的原因
    show full columns from grade_15;

具体修改步骤:

  1. use StudentGrade;
    设置要修改的默认数据库
  2. show full columns from grade_15;
    查看是否为列的问题,查看结果为上面最后一张图
ALTER TABLE tablename CHANGE COLUMN `column_name` `column_name` CHAR(6) CHARACTER SET 'utf8' NOT NULL ;

使用ALTER TABLE tablename
CHANGE COLUMN column_name column_name CHAR(6) CHARACTER SET ‘utf8’ NOT NULL ;
指令修改列的参数为utf-8

  1. show full columns from grade_15;
    完成后查看是否修改成功

上述方法的参考文章

在这一种方法试过之后,error1366终于消失啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值