[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库-表-插数据

相关推荐
alonewolf_999 小时前
MySQL 8.0 主从复制原理深度剖析与实战全解(异步、半同步、GTID、MGR)
数据库·mysql·adb
卓码软件测评10 小时前
软件首版次认定测试机构:【Apifox与UMI框架结合:实现OpenAPI规范与Mock服务的自动化流水线】
测试工具·ci/cd·性能优化·单元测试·测试用例
鹿角片ljp10 小时前
Java深入理解MySQL数据库操作
java·mysql·adb
栗子叶11 小时前
深入理解 MySQL 半同步复制:AFTER_SYNC 为何能避免主从同步数据丢失?
数据库·mysql·adb·高可用·主从同步
cly111 小时前
Jenkins CI/CD 平台详解
运维·ci/cd·jenkins
fiveym11 小时前
CI/CD 完整流水线全解析:环节拆解 + 角色分工
ci/cd
h7ml11 小时前
企业微信API接口对接系统中Java后端的持续集成/持续部署(CI/CD)落地技巧
java·ci/cd·企业微信
一念一花一世界12 小时前
企业级CI/CD工具选型:GitLab CI/CD vs Jenkins vs Arbess
ci/cd·gitlab·jenkins·arbess
教程分享大师20 小时前
创维E900V22D当贝固件全网通线刷机包 刷机教程开启adb权限及root权限
adb
吉凶以情迁20 小时前
tcl 电视进入开发者模式以及adb进入设置以及各电视打开开发者模式用电脑控制的办法
adb·电脑