[ERROR] COLLATION ‘utf8_unicode_ci‘ is not valid for CHARACTER SET ‘latin1‘

复制代码
[ERROR] COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'

错误来源是:

跟着b站的谷粒商城项目做,前面的视频中设置了数据库的字符集编码,但是后面自己发现了MySQL容器重启报错,不停的在重启

查看log信息可以使用命令:docker logs 容器id

错误如下:

也就是说,前面我在

设置的如下字符集编码内容是有问题

复制代码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

删除my.cnf文件MySQL容器又可以正常启动

解决方法:

复制代码
vi /mydata/mysql/conf/my.cnf

把my.cnf文件做出如下修改

复制代码
[client]
default_character_set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
skip-character-set-client-handshake
skip-name-resolve

重启MySQL容器

复制代码
docker restart mysql

进入容器内部查看

复制代码
docker exec -it mysql /bin/bash

修改字符集编码成功,退出容器重启MySQL也不存在报错

默认MySQL5.7的字符集编码是:

复制代码
show variables like 'character\_set\_%';

注意

docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

相关推荐
007张三丰8 分钟前
Jenkins API 与 Pipeline 深度结合:打造高阶 CI/CD 自动化体系
ci/cd·自动化·jenkins·持续集成
阿绵42 分钟前
Adb 基本概念及命令
adb
龙之叶15 小时前
【Android Monkey源码解析四】- 异常捕获/页面控制
android·windows·adb·monkey
HyEISN19 小时前
Android 9 开启远程adb
android·adb
oscar99919 小时前
CI_CD 管道:是什么、为什么以及如何构建
ci/cd·单元测试·压力测试
王文搏1 天前
MySQL 常用函数用法速查(含解释与示例)
数据库·mysql·adb
oscar9991 天前
持续交付与持续部署的区别
ci/cd·持续部署·持续交付
悟能不能悟1 天前
.gitlab-ci.yml这个文件有什么作用
ci/cd·gitlab
June bug1 天前
adb装包常见报错信息
adb
卓码软件测评2 天前
软件信创测试和软件首版次认定机构【使用Postman的Pre-request Script动态处理数据】
测试工具·ci/cd·性能优化·单元测试·测试用例